我想了解一个视图控制器的生命周期,我已经读了几条关于awakeFromNib
的矛盾声明。该文件说,所有网点应设置在awakeFromNib
,但I see that it's not always true。 awakeFromNib
,prepareForSegue
之间的电话订单是什么时间?awakeFromNib vs Outlets - 当我们调用awakeFromNib时设置插座和segues
0
A
回答
0
您的视图控制器及其视图层次结构是在运行时从单独的nib文件加载的。视图层次结构的出口在加载视图层次结构之前不会连接,这发生在视图控制器加载后。 (我已经更深入地解释了这个问题in this answer。)
假设你在导航控制器中有一个“主”视图控制器。主视图控制器执行segue来推动“详细”视图控制器。这里是事件的顺序:
细节视图控制器从它的笔尖加载。如果故事板场景包含其他顶级对象,则这些对象也将被加载。
详细视图控制器接收到
awakeFromNib
:详细视图控制器的插座连接到场景中的其他顶层对象,但是视图层次结构的插座不是。主视图控制器接收到
prepareForSegue
,segue指向详细视图控制器。塞格要求导航控制器推动详细视图控制器。
导航控制器询问详细视图控制器的视图,以添加到导航控制器的视图层次结构中。
细节视图控制器加载其视图层次结构的笔尖。这将详细视图控制器的插座连接到其视图层次结构。
视图层次结构中的所有对象都会收到
awakeFromNib
。详细视图控制器收到
viewDidLoad
。
相关问题
- 1. 调用awakeFromNib
- 2. CALayer in awakeFromNib vs drawRect
- 3. 在awakeFromNib中设置委托
- 4. init和awakeFromNib
- 5. awakeFromNib()和windowDidLoad()
- 6. 更多关于awakeFromNib vs viewDidLoad
- 7. 调用超类的awakeFromNib
- 8. NSWindowController awakeFromNib被调用两次
- 9. awakeFromNib方法调用多次
- 10. awakeFromNib调用倍数倍
- 11. 使用(void)awakeFromNib
- 12. awakeFromNib不在我的ViewController中调用
- 13. 从awakeFromNib调用Bundle.main.loadNibNamed时的Infinit循环
- 14. awakeFromNib被调用,viewDidLoad不被调用
- 15. awakeFromNib的好处?
- 16. viewDidLoad and awakeFromNib timing
- 17. awakeFromNib对面?
- 18. 我该如何回忆awakeFromNib
- 19. awakeFromNib,applicationWillFinishLaunching和applicationDidFinishLaunching的顺序?
- 20. UIKit:以编程方式调用awakeFromNib?
- 21. 视图控制器调用awakeFromNib两次
- 22. tabBarItem viewController将不会调用viewDidLoad或awakeFromNib
- 23. awakeFromNib多次呼叫
- 24. 可可 - awakeFromNib不叫
- 25. 如何唤醒awakefromnib
- 26. 在awakeFromNib期间自定义UIView的界限不正确 - 它们何时设置?
- 27. 解释awakeFromNib,initwithFrame使用
- 28. 什么是[super awakeFromNib];用于?
- 29. 何时使用awakeFromNib,initWithWindow,windowDidLoad方法?
- 30. 为什么AwakeFromNib在使用故事板时会反复调用?
在UIView生命周期中使用'awakeFromNib'更常见。但是您要查找的顺序是'prepareForSegue','awakeFromNib','viewDidLoad'您可以访问awakeFromNib中的插座,但是您应该先阅读需要首先尝试访问视图控制器视图的警告。所谓的“破解”另一个问题的海报就是感叹。在'viewDidLoad'中设置视图控制器更安全,更标准。 – beyowulf
谢谢!所以如果我们需要完全初始化的视图和插座,我们用[self view]开始awakeFromNib –
这就是objective-c。在swift中,你可以说'print(self.view)',这有点荒谬,这也是我推荐使用'viewDidLoad'的原因。 – beyowulf