美文网首页
iOS NSClassFromString用于多级返回跳转

iOS NSClassFromString用于多级返回跳转

作者: keyuan0214 | 来源:发表于2018-03-01 14:14 被阅读0次

其中self.needPopViewCpntroller为当前控制器定义的字符串,

Class tagrrVC = NSClassFromString(self.needPopViewCpntroller);
             for (UIViewController *controller in self.navigationController.viewControllers) {
                 if ([controller isKindOfClass:tagrrVC]) {
                     [self.navigationController popToViewController:controller animated:YES];
                     break;
                 }
             }

上面代码适用于A-B-C-D,D返回A的多级跳转。

还有另外一种解决方法:
这样做的好处是:当你需要pop到不同的根页面时,可以不需要再末级控制器的地方引用根级的控制器。

.h的地方写上控制器的属性

//定义一个vc,作为末级控制器的属性。最后pop的时候直接pop这个变量就可以。
@property (nonatomic, weak)UIViewController *needPopToVC;

在.m中写上具体需要跳转的实现

        if ([self.needPopToVC isKindOfClass:[TKTeacherHomeViewController class]]) {
                 for (UIViewController *controller in self.navigationController.viewControllers) {
                     if ([controller isKindOfClass:[self.needPopToVC class]]) {
                         [self.navigationController popToViewController:controller animated:YES];
                         break;
                     }

                 }
             }else
             {
                 for (UIViewController *controller in self.navigationController.viewControllers) {
                     if ([controller isKindOfClass:[self.needPopToVC class]]) {
                         [self.navigationController popToViewController:controller animated:YES];
                         break;
                     }

                 }
             }

相关文章

网友评论

      本文标题:iOS NSClassFromString用于多级返回跳转

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