在 Swift 中复制视图控制器

Copying view controllers in Swift

非常新手Swift-这里是程序员。不久前,我使用单独的视图控制器创建了一个模态弹出窗口 (MP1)。我现在想添加第二个弹出窗口 (MP2),共享第一个弹出窗口的许多属性。我已经成功地在主故事板中创建了第一个的副本(复制粘贴),但有几个关于如何继续的问题。

1) 这是否也从 MP1 复制相关代码?如果是这样我怎么找到它? (对不起,如果这是一个真正的初学者问题)。

2) swift 是否将其视为单独的参考,或者触发第一个的按钮等现在也会触发第二个?

3) 我已经通过编辑屏幕左侧列表中的名称(其中显示所有视图控制器及其所有项目)设法重命名了 MP2。然而在主情节提要板上(在情节提要上方的矩形中)它仍然具有 MP1 的名称。我该如何更改?

当您创建 ViewController 时,它会 link 编辑到 ViewController class(简单地说,Swift 文件)。 当您复制 VC 时,它将 link 编辑为与第一个相同的 class。

您可以通过转到 storyboard 并检查 Utilities 选项卡(最右边的那个)来检查 class 它被 link 编辑了) 然后单击 Identity inspector(看起来像身份证的小图标),如屏幕截图所示; class 它被 link 编辑为在选项卡顶部显示为 "Class XXXXX"。

编辑 - 回答评论: 我会制作一个继承自 UIViewController 的 class,它将包含两个 VC 都将使用的所有代码,然后制作两个独立的 classes,它们将从中继承新 class,然后 link 每个 VC 到您需要的相应 class。这是一个例子。 MyNewViewController 1 和 2 都继承自 ViewControllerWithCommonCode 我的 ViewController 被 link 编辑为 1 和另一个。

提醒一下,要从Swift中的class继承,语法如下:

class MyNewViewController : ViewControllerWithCommonCode {
    // ...
}

Separate ViewControllers