对UIViewController的开始/结束外观转换的不平衡调用

时间:2015-11-15 10:43:36

标签: ios objective-c iphone

我在SO上看过很多类似的问题,据我所知,所有这些问题都表明我们不应该推送/弹出任何视图,而不是当前的视图&view;没有被调用或者#View;已经被加载了#39; call返回false。

在我的实例中,我尝试在当前视图中推送一个新视图&view; viewWillAppear'方法,在我推它之前,我还调用[self isViewLoaded]来查看当前视图是否已加载(这是)但我仍然遇到上述错误。

我能够解决这个问题(这是一个黑客攻击)的唯一方法就是在我在另一个非UI线程上调用push之前休眠几秒钟。

由于在通话之前睡了几秒钟实际上是推动工作,我认为虽然两者都可以看到会出现这样的情况。已经被调用并且[self isViewLoaded]是真的,推送/弹出另一个视图有时候还为时过早(也许动画仍未完成?)。

我错过了什么?除了' viewWillAppear'之外还有其他方法吗?或[self isViewLoaded]将指示%100视图已完全加载并且所有动画都已完成,因此我可以安全地推送/弹出其他视图?

1 个答案:

答案 0 :(得分:0)

您可以在viewDidAppear中尝试。

然而,在实施这个时你想到了什么样的场景/设计? IMO,从尚未加载的视图中立即推送新的视图控制器是一个糟糕的设计。