美文网首页
获取能响应的控制器

获取能响应的控制器

作者: Else丶 | 来源:发表于2017-12-16 14:12 被阅读0次

有时候调用导航控制器的push和pop方法时,当前控制器不能响应,常见于UISegment添加的子控制器中调用失效。
原因应该是添加自控制器时并没有给自控制器设置导航控制器,并且没有将子控制器的导航控制器添加为父级控制器的自控制器,导致没有navigationController响应push和pop方法。
此时可以将以下方法声明在子控制器中,并通过该方法获取到能响应的控制器,再通过获取到的控制器的导航控制器调用push和pop方法

- (UIViewController *)getviewController {
    
    for (UIView* next = [self.view superview]; next; next = next.superview) {
        UIResponder *nextResponder = [next nextResponder];
        if ([nextResponder isKindOfClass:[UIViewController class]]) {
            return (UIViewController *)nextResponder;
        }
    }
    return nil;
}

相关文章

网友评论

      本文标题:获取能响应的控制器

      本文链接:https://www.haomeiwen.com/subject/tvuswxtx.html