iOS Attempt to present * on * which is already presenting

Warning: Attempt to present * on * which is already presenting *Warning: Attempt to present (要被presented的控制器) on (哪个控制器来presenting) which is already presenting (已经被presenting的控制器)

self: 是被presented出来的控制器,
self.presentingViewController: 看看是谁把self给presenting出来
RPLog(@"%@ - %@", self.presentingViewController, [UIApplication sharedApplication].keyWindow.rootViewController);
打印结果: <RPNavigationController: 0x789d0330> - <RPNavigationController: 0x789d0330>

结论: poopver中的控制器, 其实是通过窗口的根控制器presenting出来的, 所以要想窗口的根控制器再presenting其他控制器,需要先dismiss掉原来presenting的控制器,
否则会出现如下错误:
Warning: Attempt to present <RPNavigationController: 0x790dad10> on <RPNavigationController: 0x78e76c70> which is already presenting <RPRegionViewController: 0x78f76700>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容