在 UIViewControllers 我有几种方法,例如viewDidLoad、viewWillAppear、viewDidAppear等。问题是:“例如,设置视图的背景颜色、实例化和设置 UILabel 的背景颜色的最佳位置是什么,或实例化我在课堂上设置为@property 的对象之类的东西?”
谢谢!
在 UIViewControllers 我有几种方法,例如viewDidLoad、viewWillAppear、viewDidAppear等。问题是:“例如,设置视图的背景颜色、实例化和设置 UILabel 的背景颜色的最佳位置是什么,或实例化我在课堂上设置为@property 的对象之类的东西?”
谢谢!
一次问了这么多问题!
第一次加载视图时,viewDidLoad
您已经可以访问所有易于初始化的 UI 元素,因此这是配置视图和设置类属性的好地方。
如果您在视图已加载的情况下返回该视图(例如,通过从导航控制器弹出视图或关闭模式视图控制器),viewDidLoad
将不会被调用。因此,如果您想根据自视图控制器初始化后可能发生的事情来更改某些内容(背景、添加标签、更改标签的背景等),则必须使用viewWillAppear
.
如果要对更改进行动画处理,则可以使用viewDidAppear
,以便用户可以在视图已经可见后看到它。
编辑:这与您使用 IB 或情节提要有关。对于您在代码中创建视图的情况,请参阅 CitronEvanescent 的答案。
如果您正在以编程方式创建视图,则可以在此方法上设置属性,- (void) loadView
该方法将在显示任何内容之前调用一次。
一般来说,我更喜欢在 中实例化 UI 元素-(id) init
并在loadView
.
更多详情:查看施工参考
可行的方法是viewDidLoad
或类-(id)init
的-(id)initWithNibName
构造函数。
viewWillAppear
并且viewDidAppear
应该避免,因为您不想一次又一次地实例化变量,因为每次视图出现时都会调用它们(来自 pop 或 tabSwitch)。如果您想在重新出现时更改某些变量值,这两种方法可能很有用