UIViewController最佳实践 - 加载

时间:2012-08-28 11:43:05

标签: ios uiviewcontroller uikit viewdidload

我有一个带有一些UI插座的简单视图控制器。我正在使用ARC我在viewDidLoad中进行了额外的设置,例如设置标签属性,if语句动态调整某些组件的大小等等。我的问题是viewDidLoad是放置此代码的最佳位置吗?我已经发布了一些我在该方法中的代码示例。感谢。

self.messageTitleLabel.numberOfLines = 1;
self.messageTitleLabel.adjustsFontSizeToFitWidth = YES;
self.messageTitleLabel.minimumFontSize = 15.0f;
[self someMethodToReframeLabelHeight];

3 个答案:

答案 0 :(得分:1)

是的,很棒的地方。回想一下,在iOS中,由于内存压力,系统可能会卸载您的视图,因此您可能会在以后再次收到此消息。因此,在那里调整新加载的视图的代码是完美的。

答案 1 :(得分:1)

正如大卫所评论的那样,是的,在这里执行其他设置是完美的。但请注意,在viewDidLoad中,尚未为其视图设置任何几何体。因此,如果您需要在控制器视图中排列子视图的位置,请使用viewWillAppearviewDidAppear

希望有所帮助。

答案 2 :(得分:0)

是。正如David H所提到的,viewDidLoad是出于内存原因的好地方 - 如果您的应用程序收到内存警告,您的视图将在下次加载时再次设置。但是,使用viewDidLoad的另一个重要原因是,如果您尝试将上述代码放在initinitWithWhatever:中,您将遇到一些奇怪的问题。原因是在init方法中,视图尚未从其.nib中创建和唤醒,并且从那里访问它将破坏整个视图控制器循环。如果您没有使用.nib,您还可以在-loadView中进行一些基本设置。只要确保在覆盖其中一种方法时调用super