ios - 通过自定义 init 方法从 Storyboard 加载 UIViewController

标签 ios swift uiviewcontroller

我的 UIViewController 有自定义 init 方法,我想从 StoryBoard 加载它,因为只有 XYZController() 提供空白 View 。

convenience init() {
    self.init(imageURL: nil)
}

init(imageURL: NSURL?){
    //code to load the ViewController from StoryBoard
    super.init(nibName: nil, bundle: NSBundle.mainBundle())

}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!
}

最佳答案

如果您想从 Storyboard加载 View Controller ,那么您将必须遵循稍微不同的模式。

首先,在 Storyboard中为 View Controller 命名 Segue(单击它,然后在属性选项卡中输入“标识符”的名称。

当segue被触发时,prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 将被调用。您可以通过检查segue的标识符属性来确保您正在移动到适当的 View Controller ,然后将segue的destinationViewController强制转换为您的XYZViewController。

之后,您应该能够调用设置函数,或者以任何方式向 Controller 提供图像 URL。

关于ios - 通过自定义 init 方法从 Storyboard 加载 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37590858/

相关文章:

ios - 状态栏在横向模式下旋转后留下白色矩形

swift - 将支持的方法限制为 Swift 4 中的泛型参数类型

ios - 将数据从 ViewController 传递到 TabBarController

ios - 实例化 View ,然后导航离开

ios - 在任何 UIViewController 之间交替?

iPhone:NSDate 和夏令时

ios - 弹出到 Root View 时恢复倒计时

ios - 我的应用程序仅在 iOS 10 中返回前台时崩溃

Swift:最大双数

ios - 在类 AppDelegate 上发出 SIGABRT 信号