改变观点的安全方式?
Posted
技术标签:
【中文标题】改变观点的安全方式?【英文标题】:Safe way of changing views? 【发布时间】:2014-02-18 16:08:13 【问题描述】:我们在应用程序委托中有这样的功能。当本地通知到来时,执行下面的代码,它可能会导致崩溃,正如我在 insertSubview 执行的行中所理解的那样。 我怎样才能安全地做到这一点?谢谢。
-(void)changeController:(UIViewController*)newController
self.currentController = newController;
if([self.window.subviews containsObject:self.menuController.view])
[self.window insertSubview:newController.view belowSubview:self.menuController.view];
else
self.window.rootViewController = self.currentController;
【问题讨论】:
你看到了什么崩溃?请提供有关问题所在的更多信息,以便我们帮助您解决问题。 错误是视图不存在了。在控制器之间转换时会发生这种情况。 @Oleg 在您的情况下,您可以检查视图是否存在,如果不存在,则返回。 【参考方案1】:如果您的视图/视图控制器是UINavigationViewController
的一部分,那么您应该使用该类的方法来管理它们:特别是像pushViewController:animated:
这样的东西。一般来说,如果你的视图是由它们自己的视图控制器“控制”的,你可能不应该抓取这些视图并将它们附加到其他视图层次结构中。
【讨论】:
我同意你真的不应该这样做以上是关于改变观点的安全方式?的主要内容,如果未能解决你的问题,请参考以下文章