viewDidLoad()和 LoadView()之间有什么区别?他们以何种方式彼此不同?
在不使用XIB开发应用程序时哪一个更好?
谢谢。
答案 0 :(得分:51)
ViewDidLoad
,加载开始时调用loadView
。
当你创建一个新项目时,你会看到对这些方法的评论,当你应该使用哪个函数时,它会清楚地给出一个提示
看到这个
/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/
/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
}
*/
这些评论清晰易懂。
答案 1 :(得分:17)
viewDidLoad()
当您从NIB加载视图并希望在启动后执行任何自定义时,将使用。
LoadView()
当您想以编程方式创建视图时(不使用Interface Builder),将使用。
答案 2 :(得分:7)
如果您打算使用IB来构建UI,则应该在viewDidLoad中进行所有IB后初始化。如果使用nib初始化控制器,该类将根本不调用loadView。
如果在代码中初始化控制器,viewController将首先调用loadView,然后调用viewDidLoad。您可以在loadView或viewDidLoad中进行所有初始化,具体取决于您的偏好。
但是,如果您决定使用loadView,请务必在尝试读取self.view之前设置view属性,否则您将进入无限循环并崩溃。
答案 3 :(得分:2)
如果从stroyboard或xib文件初始化视图,请不要覆盖此方法或在内部调用[super loadView]。 如果在方法中调用[super loadView],最好不要覆盖此方法并将以下代码放到viewDidLoad方法中。
如果以编程方式初始化视图,则不应该调用[super loadView]。并且您必须将rootView分配给self.view属性,否则您可能会遇到完美的崩溃。
答案 4 :(得分:0)
不是很明显吗?
调用 viewDidLoad
...当视图完成加载时。
loadView
。
既不好也不坏。这一切都取决于你的设计。
祝你好运:)答案 5 :(得分:0)
视图控制器从与其关联的nib加载其视图,然后它自动调用它的loadView()方法来填充它的View。 在这种情况下,您需要实现loadView()方法。 默认情况下,它返回nil
当您的视图加载到内存viewDidLoad()方法时,您可以根据需要进行自定义初始化。
答案 6 :(得分:-6)
如果您正在开发应用程序而不使用xib
LoadView()
方法被调用,并且如果有xib则调用ViewDidLoad
方法
因此最好使用LoadView方法。