在开发中有可能会出现从任何页面跳转到某一个指定页面的需求,比如在使用应用时,突然推送过来一条消息,用户点击了之后就会跳到指定的页面,因为不知道当前用户操作的是哪一个控制器,所以没办法实现跳转。
首先我们先获取 rootViewController
。
|
|
然后根据不同类型获取不同的控制器,获取当前显示的控制器一共分为三种,UINavigationController、UITabBarViewController、presentedViewController。
UINavigationController
UINavigationController中我们可以使用 visibleViewController
这个方法来获得。他会UINavigationController中最上层的控制器。
|
|
UITabBarViewController
UITabbarViewController中我们可以使用 selectedViewController
来获得选中的控制器。
|
|
presentedViewController
这个情况下如果有presentedViewController我们就一层层的向上寻找就可以了。
|
|
整合一下
最后整合一下就是这样的:
|
|