繁体   English   中英

loadview方法被多次调用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM