判断当前视图的vc和他的前一个页面类型

1.判断当前视图所处的vc

- (UIViewController *)viewControllerForView:(UIView *)view{

for (UIView* next = [view superview]; next; next = next.superview) {

UIResponder* nextResponder = [next nextResponder];

if ([nextResponder isKindOfClass:[UIViewController class]]) {

return (UIViewController*)nextResponder;

}

}

return nil;

}


判断当前视图的vc和他的前一个页面类型_第1张图片

注意:这个地方在查找view的相关属性的时候,两件事:第一,保证该View是否已经创建,是否已经正确的创建,最好是在视图生命周期末端去操作。第二,获取到你想要的东西以后多判断,也许拿到的值并不是你要的值。要进行匹配判断。


2.判断当前VC的前一个界面的类型


- (UIViewController *)yy_router_realViewController {

if ([self isKindOfClass:[UITabBarController class]]) {

return [[(UITabBarController *)self selectedViewController] yy_router_realViewController];

} else if ([self isKindOfClass:[UINavigationController class]]) {

return [[(UINavigationController *)self topViewController] yy_router_realViewController];

} else {

return self;

}

}


判断当前视图的vc和他的前一个页面类型_第2张图片





你可能感兴趣的:(判断当前视图的vc和他的前一个页面类型)