如何从故事板以编程方式加载UIViewController?

我在我的Main.storyboard中用几个button和标签创build了一个UIViewController。 我试图切换到使用self.presentViewController该视图控制器,但它不会加载从故事板视图。 它只会默认加载一个空白的黑屏。 任何想法如何加载从故事板中创build的视图?

self.presentViewController(ResultViewController(), animated: true, completion: nil) 

你这样做只是为你的视图控制器创build一个新的实例。 它不会从您在Interface Builder中定义的原型创build一个。 相反,你应该使用这个,其中“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) }