loadView:UIView iOS中的函数

时间:2011-10-17 02:54:08

标签: ios objective-c uiview uiviewcontroller loadview

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

我创建了一个项目如下:

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

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

请解释一下!谢谢!

1 个答案:

答案 0 :(得分:15)

仅当view属性为loadView:时才会调用

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:

中做同样的事情

参考 -

  1. Why is this iPhone program not calling -loadView?
  2. loadView
  3. 希望这有帮助。