ios - 来自带有 Storyboard 的 UIViewController 子类的子类不起作用,除非

标签 ios swift

我有两个 View Controller ,一个子类UIViewController

class MGStatusViewController: UIViewController

带有 Storyboard标识符“MGStatusViewController”。(带有一些UIButton)

以及另一个子类**MGStatusViewController**

class MGStatusDetailViewController: MGStatusViewController

带有 Storyboard标识符MGStatusDetailViewController

当我这样使用它时:

self.storyboard?.instantiateViewControllerWithIdentifier("MGStatusDetailViewController") as? MGStatusDetailViewController

MGStatusViewController 的 Storyboad 文件中没有 Controller (UIButton)。

我应该如何实现这个目标?谢谢!

最佳答案

当您继承自定义 View Controller 时 - 在此示例中 MGStatusViewController 您继承了隐藏代码和逻辑。您可以将 MGStatusDetailViewController 的 socket 与 MGStatusViewController 连接起来。就是这样。您不能从 Storyboard 继承 UIView 控件并期望它们显示。

您可以做的是创建 MGStatusDetailViewController 并从中获取 View 并将其添加到 MGStatusViewController 中。或者,您可以创建嵌入控件并将 MGStatusDetailViewController 嵌入到 MGStatusViewController 中。这样,您将拥有 Storyboard中的所有控件,并将呈现您的 MGStatusDetailViewController

简而言之,继承不会从 Storyboard 中获取 View ,而只会从该 View Controller 获取代码。

此外,当您从 View Controller 继承时,您将它们用作抽象。您创建一些将在其他 View Controller 上使用的逻辑,但您不创建实际的 UI。

关于ios - 来自带有 Storyboard 的 UIViewController 子类的子类不起作用,除非,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30774766/

相关文章:

ios - 清除 drawRect shape-layer 绘图中的绘图

ios - Swift - Alamofire totalBytesExpectedToRead 返回 -1,即使设置了 Content-length

ios - 在iTunes Connect中添加新的应用内购买时,“保存”按钮消失

ios - 执行选择器 : didn't work properly when using dispatch_async and global_queue

ios - NSNotification 不返回

ios - 导出已连接,但在展开可选值时意外发现 nil

ios - 当 View 从 subview 返回时调用函数 | swift

ios - UITableViewCell 超出 UITableView 中的范围

swift 错误 : Binary operator == cannot be applied to type '_' and 'Int'

Swift loadItem 关闭未运行