美文网首页
iOS ApushB,BpushC,然后CpopA实现

iOS ApushB,BpushC,然后CpopA实现

作者: 攻城 | 来源:发表于2017-06-16 16:15 被阅读42次

    方法一:

    UINavigationControllerDelegate

    这个代理真的很简单,就是当一个viewController要显示的时候通知一下外面,给你一个机会进行设置,包含如下两个函数:

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;

    - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated;

    当你需要对某些将要显示的viewController进行修改的话,可实现该代理。

    在B界面实现代码:

    方法二:

    这是在C页面中的代码:

    - (void)viewDidLoad {   

     [superviewDidLoad];

    //得到当前视图控制器中的所有控制器

    NSMutableArray*array = [self.navigationController.viewControllers mutableCopy];

    //把B从里面删除

    [array removeObjectAtIndex:1];

    //把删除后的控制器数组再次赋值

    [self.navigationController setViewControllers:[array copy] animated:YES];

    }

    方法三

    UIViewController*viewController=nil;

    for(UIViewController*tempVc in self.navigationController.viewControllers) {

    if([tempVc isKindOfClass:[RFSelectHeadTypeViewController class]]) {

    viewController=tempVc;

    }

    }

    [self.navigationController popToViewController:viewController animated:YES];

    利用模态跳转,从A present到B,再从B present到C,然后从C present到D,最后要从D返回到A,返回过程如下:

    -(void)dismissModalStack {

    UIViewController *vc = self.presentingViewController;

    while (vc.presentingViewController) {

    vc = vc.presentingViewController;

    }

    [vc dismissViewControllerAnimated:YES completion:NULL];

    }

    相关文章

      网友评论

          本文标题:iOS ApushB,BpushC,然后CpopA实现

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