UITabbarViewController+Navigation框架下的子视图的跳转示例之一

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

首先说框架是如下图:


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

UITabbarViewController+Navigation框架下的子视图的跳转示例之一_第1张图片

那流程应该如下图:


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

//相当于从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派生类中实现;


你可能感兴趣的:(UITabbarViewController+Navigation框架下的子视图的跳转示例之一)