0

在 UIViewControllers 我有几种方法,例如viewDidLoadviewWillAppearviewDidAppear等。问题是:“例如,设置视图的背景颜色、实例化和设置 UILabel 的背景颜色的最佳位置是什么,或实例化我在课堂上设置为@property 的对象之类的东西?”

谢谢!

4

3 回答 3

2

一次问了这么多问题!

第一次加载视图时,viewDidLoad您已经可以访问所有易于初始化的 UI 元素,因此这是配置视图和设置类属性的好地方。

如果您在视图已加载的情况下返回该视图(例如,通过从导航控制器弹出视图或关闭模式视图控制器),viewDidLoad将不会被调用。因此,如果您想根据自视图控制器初始化后可能发生的事情来更改某些内容(背景、添加标签、更改标签的背景等),则必须使用viewWillAppear.

如果要对更改进行动画处理,则可以使用viewDidAppear,以便用户可以在视图已经可见后看到它。

编辑:这与您使用 IB 或情节提要有关。对于您在代码中创建视图的情况,请参阅 CitronEvanescent 的答案。

于 2012-11-01T14:12:44.163 回答
0

如果您正在以编程方式创建视图,则可以在此方法上设置属性,- (void) loadView该方法将在显示任何内容之前调用一次。

一般来说,我更喜欢在 中实例化 UI 元素-(id) init并在loadView.

更多详情:查看施工参考

于 2012-11-01T14:13:22.123 回答
0

可行的方法是viewDidLoad或类-(id)init-(id)initWithNibName 构造函数。 viewWillAppear并且viewDidAppear应该避免,因为您不想一次又一次地实例化变量,因为每次视图出现时都会调用它们(来自 pop 或 tabSwitch)。如果您想在重新出现时更改某些变量值,这两种方法可能很有用

于 2012-11-01T14:15:01.527 回答