这个问题在另一篇文章中提出,我无法解释他们的意思。我认为故事板是UIViewController的一个属性,因为Apple的参考文档在该区域中描述了var故事板,内容为“与故事板和Segues交互”。 Apple UIViewController reference doc其中一条评论内容为“故事板不是UIViewController的属性或属性”,我希望他们能够对此进行阐述。任何人都可以提供帮助,因为现在我很困惑,如果我正在阅读或正确使用参考文档。
最初的问题是:original question
答案 0 :(得分:2)
在文档中,定义指出:
var storyboard: UIStoryboard?
视图控制器发起的故事板。
您认为var storyboard
是UIViewController
的属性是正确的。你混淆的原因是你的心智模型假设因为UIViewController
引用了storyboard
,它必须拥有它。 storyboard
只是对加载您的UIViewController
的故事板的引用。它应该被视为更多的自下而上的关系,而不是自上而下。
实际上,作为UIViewController
,一个常见的用例是让你的storyboard
实例化其他UIViewControllers,然后我们可以呈现:
let viewControllerToPresent = storyboard?.instantiateViewController(withIdentifier: "presentedController")
present(viewControllerToPresent, animated: true, completion: nil)
答案 1 :(得分:1)
UIViewController
课程肯定有storyboard property。
您的另一个问题是询问初始视图控制器的实例化和初始化。在该问题的上下文中,我认为的意思是UIViewController
类没有故事板属性,它在实例化实例之前以某种方式知道 ,它允许它从一个实例化实例化故事板。
相反,UIStoryboard
在storyboard
实例创建后设置UIViewController
属性。这对于segue工作是必要的。
请注意,storyboard
属性是可选的,如果实例未由故事板创建,则它不会有值。