在viewWillAppear,viewDidAppear,中,我有几种方法,例如viewDidLoad、等。问题是:“例如,设置视图的背景色、实例化和设置UILabel的背景色,或者实例化类中设置为@property之类的对象的最佳位置是什么?”
谢谢!
发布于 2012-11-01 14:12:44
一次问这么多问题!
第一次加载视图时,在viewDidLoad中,您已经可以访问所有容易初始化的UI元素,因此它是配置视图和设置类属性的好地方。
如果已经加载了视图(例如,通过从导航控制器中弹出视图,或取消模态视图控制器),则不会调用viewDidLoad。因此,如果您想要更改某些内容(背景,添加标签,更改标签的背景,等等)基于视图控制器初始化后可能发生的情况,您必须使用viewWillAppear。
如果您想动画一个更改,那么您可以使用viewDidAppear,这样用户就可以在视图变得可见之后看到它。
编辑:这是相关的,如果你使用IB或故事板。有关在代码中创建视图的情况,请参见CitronEvan级的答案。
发布于 2012-11-01 14:13:22
如果要创建编程视图,可以在- (void) loadView上设置属性--在显示任何内容之前,将调用该方法一次。
通常,我更喜欢实例化-(id) init中的UI元素,并在loadView中更新它们的UI。
欲了解更多详细信息:视图构造参考
发布于 2012-11-01 14:15:01
可行的方法是类的viewDidLoad或-(id)init、-(id)initWithNibName构造函数。应该避免viewWillAppear和viewDidAppear,因为您不想一次又一次地实例化变量,因为每次视图出现时(来自pop或tabSwitch)都会调用它们,如果您想在再现时更改一些变量值,那么两个方法可能很有用。
https://stackoverflow.com/questions/13178803
复制相似问题