loadView:UIView iOS中的函数

vie*_*one 8 objective-c uiviewcontroller uiview loadview ios

我不明白loadView:函数的机制(这个函数在UIView中).

我创建了一个项目如下:

  • 首先,我创建了一个iPhone的基于窗口的项目.
  • 然后,我创建了一个UIView子类
  • 接下来,我创建了一个UIViewController没有xib 的子类.
  • 最后,在loadView:我在第三步中创建的类的函数中,我将UIView对象(在我在第二步中创建的类)指定为对象的视图变量UIViewController(在第三步中).

如果我省略了最后一步,并将语句NSLog(@"test LoadView");放在loadView:函数中,那么当项目运行时,语句NSLog(@"test LoadView");会被连续调用,导致运行溢出.

请解释一下!谢谢!

Sri*_*aju 15

loadView:仅在view属性时调用nil.以编程方式创建视图时使用此选项.default:创建一个没有子视图的UIView对象.对于前 -

- (void)loadView 
{ 
    UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; 
    [view setBackgroundColor:color]; 
    self.view = view; 
    [view release]; 
}
Run Code Online (Sandbox Code Playgroud)

通过实现该loadView:方法,您可以挂钩到默认的内存管理行为.如果内存不足,视图控制器可能会收到该didReceiveMemoryWarning消息.默认实现检查视图是否正在使用中.如果其视图不在视图层次结构中,并且视图控制器实现该loadView:方法,则会释放其视图.稍后当需要视图时,loadView:再次调用该方法以创建视图.

不知道你为什么要使用,loadView:但你可以做同样多的事情viewDidLoad:

参考 -

  1. 为什么这个iPhone程序没有调用-loadView?
  2. 的loadView

希望这可以帮助.