在某些代码中,你可能无法直接获取该视图的导航控制器,标签控制器,或者主窗口,你可以通过响应者链条来获取,贴出代码如下:建议添加一个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;
}
本文介绍了一种在Swift中利用UI响应链获取导航控制器、标签控制器及主窗口的方法,并提供了具体的实现代码。
66

被折叠的 条评论
为什么被折叠?



