在iOS開發(fā)中經(jīng)常會在自定義view中push到下一個(gè)導(dǎo)航控制器,這時(shí)就需要獲取當(dāng)前自定義view所在的導(dǎo)航控制器
- (UIViewController*)viewController {
for (UIView* next = [self superview]; next; next = next.superview) {
UIResponder* nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UINavigationController class]]) {
return (UIViewController*)nextResponder;
}
}
return nil;
}
//獲取導(dǎo)航控制器
- (UINavigationController*)navigationController {
for (UIView* next = [self superview]; next; next = next.superview) {
UIResponder* nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UINavigationController class]]) {
return (UINavigationController*)nextResponder;
}
}
return nil;
}