7

我遇到了这个问题(一些用户的 Flurry 分析报告了错误,但我无法在我的设备和模拟器上重现它):

NSInvalidArgumentException: Application tried to present modally an active controller <CityViewController: 0x361b20>.

你知道这个错误吗?它发生在你身上吗?

应用程序具有三个按层次排序的视图:当用户位于已知位置之一时,会自动显示带有位置列表的主视图控制器和详细视图(错误消息中提到的 CityViewController)。每当位置发生显着变化时,在打开新位置之前首先关闭详细视图以防止这种情况发生。然而,这显然没有帮助。

CityViewController 也可以将 SMS 编写器作为其子项打开。

4

3 回答 3

17

要获得当前可见的视图,您可以使用:

[self.navigationController visibleViewController];
于 2015-04-07T07:28:32.430 回答
3

所以对原始问题的回复:我如何获得当前的活动视图控制器?

答案在于[self.navigationController presentedViewController]而不是 topViewController 或其他任何东西。

于 2013-03-27T10:50:03.853 回答
0

如果您在触发某些事件时启动模态视图,那么您似乎很可能在该视图已经处于活动状态时尝试再次显示该视图......

于 2013-03-26T10:04:10.430 回答