storyboard属性是UIViewController的一个属性吗?

时间:2018-04-29 19:01:44

标签: ios uiviewcontroller storyboard

这个问题在另一篇文章中提出,我无法解释他们的意思。我认为故事板是UIViewController的一个属性,因为Apple的参考文档在该区域中描述了var故事板,内容为“与故事板和Segues交互”。 Apple UIViewController reference doc其中一条评论内容为“故事板不是UIViewController的属性或属性”,我希望他们能够对此进行阐述。任何人都可以提供帮助,因为现在我很困惑,如果我正在阅读或正确使用参考文档。

最初的问题是:original question

2 个答案:

答案 0 :(得分:2)

在文档中,定义指出:

  

var storyboard: UIStoryboard?

     
    

视图控制器发起的故事板。

  

您认为var storyboardUIViewController的属性是正确的。你混淆的原因是你的心智模型假设因为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属性。这对于s​​egue工作是必要的。

请注意,storyboard属性是可选的,如果实例未由故事板创建,则它不会有值。