[英]loadview method is called several times
我以编程方式创建我的视图。 如果我不放置loadView
方法,则该应用程序运行良好。 但是,当我添加如下的loadView
方法时:
- (void)loadView
{
NSLog(@"loadView is called");
}
我发现这种方法被调用了很多次! 最后,该应用程序崩溃了。
我不知道为什么loadView
方法被调用了这么多次。
有人可以帮忙吗? 非常感谢!
在某些时候,预计loadView
会填充视图控制器的view
属性。 view属性是延迟加载的(查看调用堆栈,您将看到一个名为_loadViewIfNeeded
的方法)。
如果loadView
没有创建视图,则每次访问.view
属性时,视图控制器都会再次调用loadView
,以尝试延迟加载视图。 在某些时候,一切都会出错,因为视图控制器需要一个视图。 如果您从您的自定义的loadView 中访问self.view,你会得到一个无限循环。
从文档中:
您可以覆盖此方法,以便手动创建视图。 如果选择这样做, 请将视图层次结构的根视图分配给view属性 。 您创建的视图应该是唯一的实例,并且不应与任何其他视图控制器对象共享。 您对此方法的自定义实现不应调用super。
在加载视图中,您要调用[self loadView]
而不是[super loadView]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.