我不确定的一个相当基本的问题。我通常UIViewController
在viewDidLoad
. 如果控制器有一些标签属性等,我将在此处初始化它们并将它们添加到视图中。这些属性通常在 .m 中声明,因此可以认为是伪私有的。
但是 - 如果控制器在其头文件中公开这些属性之一(比方说 a UILabel
),我发现在设置它时我不能依赖它存在。例如:
CustomViewController *controller = [CustomViewController alloc] initWithNibName:nil bundle:nil];
controller.someLabel.text = @"label text goes here";
//then comes the presentation code
我发现我设置标签的文本太早了 -viewDidLoad
还没有触发,所以标签为零。
我应该在其中创建此标签init
并将其添加到viewDidLoad
吗?我应该做我所有的设置init
吗?或者也许是视图属性的所有初始化?还是根据具体情况判断?
或者也许根本原因是我不应该让控制器公开视图(标签)并使用其他模式?
我正在寻找一种一致的方式来构建我的代码。