我在Main.storyboard中创建了一个带有几个按钮和标签的UIViewController。我试图使用self.presentViewController切换到该视图控制器,但它不会从故事板加载视图。默认情况下,它只会加载一个黑屏。关于如何从我在故事板中创建的内容加载视图的任何想法?
self.presentViewController(ResultViewController(), animated: true, completion: nil)
答案 0 :(得分:35)
您执行此操作的方式只会创建视图控制器的新实例。它不会从您在Interface Builder中定义的原型中创建一个。相反,你应该使用它,其中" SomeID"是您在Interface Builder中分配给视图控制器的故事板ID。
if let resultController = storyboard!.instantiateViewControllerWithIdentifier("SomeID") as? ResultViewController {
presentViewController(resultController, animated: true, completion: nil)
}
您可以在Interface Builder的身份检查器中为您的视图控制器分配故事板ID。
答案 1 :(得分:5)
Full Swift 3代码,包括Storyboard的实例化:
let storyboard = UIStoryboard.init(name: "Main", bundle: Bundle.main)
if let mainViewController = storyboard.instantiateInitialViewController() {
present(mainViewController, animated: false, completion: nil)
}
答案 2 :(得分:0)
SWIFT 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)
}