我不明白loadView:function的机制(这个函数在UIView中).
我创建了一个项目如下:
>首先,我创建了一个iPhone的基于窗口的项目.
>然后,我创建了一个UIView子类
>接下来,我创建了一个UIViewController子类,没有xib.
>最后,在我在第三步中创建的类的loadView:函数中,我将UIView对象(在我在第二步中创建的类)指定为UIViewController对象的视图变量(在第三步中).
如果我省略了最后一步,并放置语句NSLog(@“test LoadView”);在loadView:函数中,然后在项目运行时,声明NSLog(@“test LoadView”);连续调用,导致运行溢出.
请解释一下!谢谢!
解决方法
loadView:仅在view属性为nil时调用.以编程方式创建视图时使用此选项. default:创建一个没有子视图的UIView对象.对于前 –
- (void)loadView { UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; [view setBackgroundColor:color]; self.view = view; [view release]; }
通过实现loadView:方法,您可以挂钩到默认的内存管理行为.如果内存不足,视图控制器可能会收到didReceiveMemoryWarning消息.默认实现检查视图是否正在使用中.如果其视图不在视图层次结构中,并且视图控制器实现了loadView:方法,则会释放其视图.稍后当需要视图时,再次调用loadView:方法来创建视图.
不确定为什么要使用loadView:但是你可以在viewDidLoad中做同样的事情:
参考 –
> Why is this iPhone program not calling -loadView?
> loadView
希望这可以帮助.