Swift 代码如下:
//查找响应者链条中的导航视图控制器
func navController() -> UINavigationController? {
var next = nextResponder()
//遍历响应者链条
while next != nil {
if let nav = next as? UINavigationController {
return nav
}
//如果下一个响应者不是导航视图控制器
//查找下一个响应者下一个响应者
next = next?.nextResponder()
}
return nil
}
Object-C 代码如下:
- (UINavigationController *)navController{
UIResponder * next = self.nextResponder;
while (next != nil) {
if ([next isKindOfClass:[UINavigationController class]]) {
return (nav *)next;
}
next = next.nextResponder;
}
return nil;
}
</pre><pre name="code" class="objc"><span> </span>此方法适用于那种层级较深,代理和 block 不好完成的控制器间跳转问题。换句话说,用通知实现的控制器间跳转问题都可以考虑用此方法解决
</pre><pre name="code" class="objc">
<span> </span>第一次写博客,我自己都觉得写得不好。。。。大家凑合看看。以后尽量常写点东西
<span> </span>