[英]How to Create a UIViewController programmatically with view from storyboard
[英]How to load UIViewController programmatically from storyboard?
我在 Main.storyboard 中创建了一个 UIViewController ,带有几个按钮和标签。 我正在尝试使用 self.presentViewController 切换到该视图控制器,但它不会从故事板加载视图。 默认情况下它只会加载一个空白的黑屏。 关于如何从我在故事板中创建的内容加载视图的任何想法?
self.presentViewController(ResultViewController(), animated: true, completion: nil)
您这样做的方式只是创建视图控制器的新实例。 它不会根据您在 Interface Builder 中定义的原型创建一个。 相反,您应该使用它,其中“SomeID”是您在 Interface Builder 中分配给视图控制器的故事板 ID。
if let resultController = storyboard!.instantiateViewControllerWithIdentifier("SomeID") as? ResultViewController {
presentViewController(resultController, animated: true, completion: nil)
}
您可以在 Interface Builder 的身份检查器中为您的视图控制器分配故事板 ID。
完整的 Swift 3 代码,包括 Storyboard 的实例化:
let storyboard = UIStoryboard.init(name: "Main", bundle: Bundle.main)
if let mainViewController = storyboard.instantiateInitialViewController() {
present(mainViewController, animated: false, completion: nil)
}
斯威夫特 5.2
首先,您应该为 viewcontroller 定义一个 storyboardID,然后使用此代码
let storyboard = UIStoryboard(name: "Main", bundle: nil) // type storyboard name instead of Main
if let myViewController = storyboard.instantiateViewController(withIdentifier: "myViewControllerID") as? CourseDetailVC {
present(myViewController, animated: true, completion: nil)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.