ViewController里的loadView和viewDidLoad什么区别

当你访问一个ViewController的view属性时,如果此时view的值是nil,那么,ViewController就会自动调用loadView这个方法。这个方法就会加载或者创建一个view对象,赋值给view属性。loadView默认做的事情是:如果此ViewController存在一个对应的nib文件,那么就加载这个nib。否则,就创建一个UIView对象。如果你用Interface Builder来创建界面,那么不应该重载这个方法。如果你想自己创建view对象,那么可以重载这个方法。此时你需要自己给view属性赋值。你自定义的方法不应该调用super。如果你需要对view做一些其他的定制操作,在viewDidLoad里面去做。=========================================根据上面的文档可以知道,有两种情况:1、如果你用了nib文件,重载这个方法就没有太大意义。因为loadView的作用就是加载nib。如果你重载了这个方法不调用super,那么nib文件就不会被加载。如果调用了super,那么view已经加载完了,你需要做的其他事情在viewDidLoad里面做更合适。2、如果你没有用nib,这个方法默认就是创建一个空的view对象。如果你想自己控制view对象的创建,例如创建一个特殊尺寸的view,那么可以重载这个方法,自己创建一个UIView对象,然后指定 self.view = myView; 但这种情况也没有必要调用super,因为反正你也不需要在super方法里面创建的view对象。如果调用了super,那么就是浪费了一些资源而已。最后,还是建议遇到问题先看官方文档,里面对每个方法内部是怎么实现的,重载的时候需要注意什么都说的很清楚
时间: 2024-10-10 04:03:56

ViewController里的loadView和viewDidLoad什么区别的相关文章

IOS loadView 和 viewDidLoad 的区别

IOS 开发 loadView 和 viewDidLoad 的区别 iPhone开发必不可少的要用到这两个方法. 他们都可以用来在视图载入的时候,初始化一些内容. 但是他们有什么区别呢? viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用. loadView 此方法在控制器的view为nil的时候被调用. 此方法用于以编程的方式创建view的时候用到. 如: - ( void ) loadView { UIView *view = [ [ UIView alloc] i

loadView和viewDidLoad的区别

loadView方法在控制器的view为nil的时候被调用,用于创建view.视图第一次载入的时候调用,使用代码生成函数. - ( void ) loadView {    UIView *view = [ [ UIView alloc] initWithFrame:[ UIScreenmainScreen] .applicationFrame] ;[ view setBackgroundColor:_color] ;    self.view = view;} viewDidLoad 方法只有

iOS开发之loadView和viewDidLoad总结

http://www.1000phone.net/forum.php?mod=viewthread&tid=10507&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline iPhone开发必不可少的要用到这两个方法. 他们都可以用来在视图载入的时候,初始化一些内容. 但是他们有什么区别呢? viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用.viewDidLoad用于

loadView 与 viewDidLoad 和 didReceiveMemoryWarning与viewDidUnload 详解

首先试验下:viewController初始化 分两个支路:initWithNibName加载初始化 及 init 直接初始化: <1>调用initWithNibName加载一个xib界面文件来实现初始化viewController: 在 self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone"bundle:nil] autorelease]; xib界面文

loadView和viewDidLoad及initWithNibName/awakeFromNib/initWithCoder

每个ios开发者对loadView和viewDidLoad肯定都很熟悉,虽然这两个函数使用上真的是非常简单,但是和类似的initWithNibName/awakeFromNib/initWithCoder放在一起还是非常容易让人混淆的. 一.loadView 永远不要主动调用这个函数.view controller会在view的property被请求并且当前view值为nil时调用这个函数.如果你手动创建view,你应该重载这个函数.如果你用IB创建view并初始化view controller

loadView与viewDidLoad不同

loadView 和 viewDidLoad 是 iPhone 开发中肯定要用到的两个方法. 他们都可以用来在视图载入的时候初始化一些内容. 但是他们有什么区别呢? viewDidLoad 方法只有当 view 从 nib 文件初始化的,  viewDidLoad 用于初始化,加载时用到. loadView 方法在控制器的 view 为 nil 的时候被调用. 此方法用于以编程的方式创建 view 的时候用到.loadView 是使用代码生成视图的时候,当视图第一次载入的时候调用的方法.用于使用

loadView与viewDidLoad

loadView 和 viewDidLoad 是 iPhone 开发中肯定要用到的两个方法. 他们都可以用来在视图载入的时候初始化一些内容. 但是他们有什么区别呢? viewDidLoad 方法只有当 view 从 nib 文件初始化的时候才被调用.viewDidLoad 用于初始化,加载时用到. loadView 方法在控制器的 view 为 nil 的时候被调用. 此方法用于以编程的方式创建 view 的时候用到.loadView 是使用代码生成视图的时候,当视图第一次载入的时候调用的方法.

loadView 与 ViewDidLoad

每个ios开发者对loadView和viewDidLoad肯定都很熟悉,虽然这两个函数使用上真的是非常简单,但是和类似的initWithNibName/awakeFromNib/initWithCoder放在一起还是非常容易让人混淆的. 一.loadView 永远不要主动调用这个函数.view controller会在view的property被请求并且当前view值为nil时调用这个函数.如果你手动创建view,你应该重载这个函数.如果你用IB创建view并初始化view controller

[转]浅论ViewController的加载 -- 解决 viewDidLoad 被提前加载的问题(pushViewController 前执行)

一个ViewController,一般通过init或initWithNibName来加载.二者没有什么不同,init最终还是要调用initWithNibName方法(除非这个ViewController没有nib文件). 我们经常在initWithNibName方法中初始化视图,变量或者其他成员.这是最常见的initWithNibName方法写法: - (id)initWithNibName:(NSString *)nibNameOrNilbundle:(NSBundle *)nibBundle