我试图了解视图控制器的生命周期,但我已经阅读了一些关于awakeFromNib
. 文档说应该设置所有网点,awakeFromNib
但我发现它并不总是正确的。之间的呼叫顺序是什么awakeFromNib
,prepareForSegue
插座何时可用?
问问题
367 次
1 回答
1
您的视图控制器及其视图层次结构在运行时从单独的 nib 文件加载。在加载视图层次结构之前,不会连接到视图层次结构的出口,这发生在加载视图控制器之后。(我已经在这个答案中更深入地解释了这一点。)
假设您在导航控制器中有一个“主”视图控制器。主视图控制器执行 segue 以推送“详细”视图控制器。以下是事件顺序:
详细视图控制器从其 nib 加载。如果情节提要场景包含其他顶级对象,也会加载这些对象。
细节视图控制器接收
awakeFromNib
:细节视图控制器到场景中其他顶级对象的出口被连接,但视图层次结构的出口没有。主视图控制器接收
prepareForSegue
指向详细视图控制器的 segue。Segue 要求导航控制器推送详细视图控制器。
导航控制器向详细视图控制器询问其视图,以添加到导航控制器的视图层次结构中。
详细视图控制器加载其视图层次结构 nib。这将详细视图控制器的出口连接到其视图层次结构。
视图层次结构中的所有对象都接收
awakeFromNib
.详细视图控制器接收
viewDidLoad
.
于 2016-05-12T15:38:32.200 回答