在 iOS 系统中,能否获取到当前显示的控制器?
在 iOS 系统中,不通过提前获取并存储数据的方案。能否获取到当前显示的控制器?
需要处理的一些情况
自定义的控制器
UITabBarController
present
问题说明,通过runtime替换-view***Appear:
相关方法的实现,可以实现本需求。但是这种情况,需要开发者在某处保存当前显示的控制器。所以,该方案不满足需求。
统一回复:
self.navigationController.viewControllers.lastObject
这类方案只能在控制器中获取控制器所在navigationController的最后一个控制器,它和当前显示的控制器不恒等。
比如tab+nav架构中,当前显示的是第二tab,在第一个tab的nav的某个控制器中执行该方法,并不能获取当前显示的控制器。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果有导航栏的话,可以通过导航栏保存的控制器栈来找
self.navigationController.viewControllers.lastObject
来获取,你需要处理的一些情况那里写的我不太明白...通过导航可以拿到你所在的控制器,进行相对应的跳转返回