美文网首页
从非第一个tabbarItem子页面直接返回首页,也就是第一个i

从非第一个tabbarItem子页面直接返回首页,也就是第一个i

作者: tanlai38397 | 来源:发表于2017-11-28 14:02 被阅读77次

    在UTabBarViewController+Navigation框架下,经常会遇到从一个子视图跳转到另一个子视图(当然这里指的是UITabBar中的Item1的子视图跳转到Item3的子视图)。典型的例子就是消息推送了(当前正在浏览某一个界面,收到消息后自动跳转到消息展示界面)。
    首先说框架是如下图:


    当然想从ViewController9下的moreController视图跳转到ViewContorller7视图中。


    那流程应该如下图:


    上图描述很清楚,无需多说。代码就如下:

    //相当于从moreController视图中一个一个地退出视图(Pop方式),直接退到UITabBarViewController的Item3中
    
    UINavigationController *oldNavigationController = [self.viewControllers objectAtIndex:self.selectedIndex];
    for (int i = [oldNavigationController.viewControllers count] - 1; i >= 0; i--) {
    UIViewController *viewController = [oldRootNavigationController.viewControllers objectAtIndex:i];
    NSArray *array = [oldRootNavigationController popToViewController:viewController animated:NO];
    }
    //当不是UITabBarViewController不是第1项时,就强制切换到Item1
    if (0 != self.selectedIndex){
    self.selectedIndex = 0;
    }
    //在Item1中查找并获取到ViewController7视图(由于ViewController7是在第1个,即为0)
    UINavigationController *newNavigationController = [self.viewControllers objectAtIndex:0];
    ViewController7 *viewcontroller7 = [newNavigationController.viewControllers objectAtIndex:0];
    

    获取到viewContorller7对象,就可以做相关事情了。
    注意上述代码需在UITabBarViewConroller派生类中实现;


    转自---http://blog.csdn.net/nogodoss/article/details/27307753

    相关文章

      网友评论

          本文标题:从非第一个tabbarItem子页面直接返回首页,也就是第一个i

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