我遇到了这个问题(某些用户的Flurry分析报告错误,但我无法在我的设备和模拟器上重现它):
NSInvalidArgumentException: Application tried to present modally an active controller <CityViewController: 0x361b20>.
你对这个错误一无所知吗?它发生在你身上吗?
应用程序有三个分层排序视图:当用户位于其中一个已知位置时,将自动显示包含位置列表和详细视图的主视图控制器(错误消息中提到的CityViewController)。每当位置发生显着变化时,在打开新位置之前,首先会忽略详细视图以防止出现这种情况。但是,它显然没有帮助。
CityViewController也可以打开短信作曲家作为孩子。
答案 0 :(得分:16)
要获取当前可见的视图,您可以使用:
[self.navigationController visibleViewController];
答案 1 :(得分:3)
所以对原始问题的回复:我如何获得当前的活动视图控制器?
答案在于[self.navigationController presentedViewController]
,而不是topViewController或其他任何内容。
答案 2 :(得分:0)
如果您在某个事件被触发时启动模态视图,则可能是您尝试在该视图已处于活动状态时再次显示该视图...