在某些代码中,你可能无法直接获取该视图的导航控制器,标签控制器,或者主窗口,你可以通过响应者链条来获取,贴出代码如下:建议添加一个UIView 的类目来放这些代码
//获取导航控制器
- (UINavigationController * )navigationController{
UIResponder * next = [self nextResponder];
while (next!=nil) {
if([next isKindOfClass:[UINavigationController class]]){
return (UINavigationController * )next;
}
next = [next nextResponder];
}
return nil;
}
//获取标签控制器
- (UITabBarController * )tabBarController{
UIResponder * next = [self nextResponder];
while (next!=nil) {
if([next isKindOfClass:[UITabBarController class]]){
return (UITabBarController * )next;
}
next = [next nextResponder];
}
return nil;
}
//获取主窗口
- (UIWindow * )rootWindow{
UIResponder * next = [self nextResponder];
while (next!=nil) {
if([next isKindOfClass:[UIWindow class]]){
return (UIWindow * )next;
}
next = [next nextResponder];
}
return nil;
}