viewDidLoad(),LoadView()

问题描述:

viewDidLoad()LoadView()?它们以何种方式彼此不同?viewDidLoad(),LoadView()

当我们不使用XIB开发应用程序时,哪一个更好?

谢谢。

+0

请尝试此链接http://*.com/questions/573958/iphone-sdk-what-is-the-difference-between-loadview-and-viewdidload – visakh7 2011-03-02 05:56:34

如果您在不使用xibLoadView()方法被调用和开发应用程序,如果有一个厦门国际银行则ViewDidLoad方法被称为

因此,最好是使用的loadView方法。

+9

这是不正确的。 ViewDidLoad对我来说无论如何 – MobileMon 2015-06-29 19:02:26

+0

但是当我在ViewDidLoad中编写代码时,它也可以工作!请解释为什么这会起作用。 (我没有使用任何故事板) – 2016-03-17 13:35:15

这不是很明显吗?

viewDidLoad被称为...当视图完成加载。

loadView在视图被告知加载时被调用。

两者都不是好或坏。这完全取决于你的设计。

祝你好运:)

+1

没有太多的答案。正如其他答案所述,它们的关键区别在于您是(a)使用xib/nib还是(b)以编程方式创建用户界面。 – 2013-08-23 09:40:11

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]; 
} 
*/ 

这些意见是明确的,容易理解。

如果您打算使用IB来构建您的UI,则应该在viewDidLoad中执行所有后期IB初始化。如果您使用笔尖初始化控制器,则该类根本不会调用loadView。

如果在代码中初始化控制器,viewController将首先调用loadView,然后调用viewDidLoad。您可以在loadView或viewDidLoad中执行所有初始化,具体取决于您的偏好。

但是,如果您决定使用loadView,请务必在尝试读取self.view之前设置视图属性,否则您将进入无限循环并崩溃。

+0

根据文档,你不应该调用'[super loadView]';你应该自己设置'view'属性 – user102008 2011-09-27 22:05:01

+0

修改我的答案。什么UIViewController的loadView是初始化一个空白的视图。我想这可能会浪费,如果用户的实现取消超级设置的视图,但它不会伤害。 – futureelite7 2011-09-30 08:00:58

如果没有关联nib,视图控制器会加载与其关联的nib的视图,然后它会自动调用它的loadView()方法来填充它的View。 在这种情况下,您需要实现loadView()方法。 默认情况下它返回无

当你的视图加载到内存viewDidLoad()方法在这里被调用时,你可以根据你的要求做你的自定义初始化。

如果您从stroyboard或xib文件初始化视图,请勿重写此方法或调用[super loadView]里面。 如果您在方法内部调用[super loadView],则最好不要重写此方法,并将以下代码放到viewDidLoad方法中。

如果你以编程方式初始化你的视图,你应该永远不要调用[super loadView]。您必须将您的rootView分配给self.view属性,否则您可能会遇到完美的崩溃。

viewDidLoad() 

将在您从NIB加载视图并希望在启动后执行任何自定义时使用。

LoadView() 

用于以编程方式创建视图(不使用Interface Builder)。