在我的应用程序中,许多视图控制器都有一个包含某种"仪表板"的容器视图,其中多个按钮和标签在整个应用程序中共享。在两个视图控制器之间切换时,通常发生的情况是:
1) the new view controller's viewDidLoad is called;
2) the new view controller's viewWillAppear is called;
3) the dashboard's viewDidLoad is called (there is an automatic segue to it, since it's inside a Container View);
4) the dashboard's viewWillAppear is called;
现在,在仪表板的 viewWillAppear 方法中,我对不同的标签进行了一些格式化(更改其文本和颜色)。但是,在iOS 8.3中,这似乎没有任何影响。例如,我执行以下操作来更改按钮的标签:
self.myButton.titleLabel.text = @"myText";
然而,在执行此指令之后,立即执行
(lldb) po self.myButton.titleLabel.text
在调试器提示符下,将输出该按钮标签的先前内容(来自情节提要),而不是"myText"。不用说,在iOS 8.2(包括iOS 7)之前一切正常。
所以我的问题是:iOS 8.3 中的视图/续集生命周期级别有什么变化吗?
必须使用 [myButton setTitle:forState:]
来更改按钮的标题。如果它以前有效,那纯粹是运气。