loadView vs viewDidLoad
by Elton on 十一.30, 2009, under iPhone
iPhone开发必不可少的要用到这两个方法。 他们都可以用来在视图载入的时候,初始化一些内容。 但是他们有什么区别呢?
viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用。
loadView 此方法在控制器的view为nil的时候被调用。 此方法用于以编程的方式创建view的时候用到。 如:
1 2 3 4 5 6 7 | - (void)loadView { UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; [view setBackgroundColor:_color]; self.view = view; [view release]; } |
你在控制器中实现了loadView方法,那么你可能会在应用运行的某个时候被内存管理控制调用。 如果设备内存不足的时候, view 控制器会收到didReceiveMemoryWarning的消息。 默认的实现是检查当前控制器的view是否在使用。 如果它的view不在当前正在使用的view hierarchy里面,且你的控制器实现了loadView方法,那么这个view将被release, loadView方法将被再次调用来创建一个新的view。



十二月 14th, 2009 on 08:19
your blog is loading slowly.
二月 25th, 2010 on 15:05
我想问一下, viewDidUnload 方式什么时候调用, 用处是release resource, 但是什么时候调用, 我打了 breakpoint 但是始终没有被调用到。
二月 26th, 2010 on 14:32
这个主要是用在释放跟当前视图关联的子视图(subviews)用的。 当你当前视图被关闭的时候,跟它关联的子视图会在这个方法中关闭。一般都是你这个类中的实体变量。在这个方法中用self.myOutlet = nil;这样的语句调用setter将其释放。
三月 4th, 2010 on 09:05
searching for same blog engine
七月 29th, 2010 on 18:28
I wonder what responses would be like to the questions: