弹出选项卡栏控制器中的Root View控制器的问题

时间:2013-02-18 07:43:09

标签: ios uinavigationcontroller uitabbarcontroller

我正在使用RootViewController中的6个选项卡导航到Tab栏控制器...我在左侧导航栏项目中创建了后退按钮方法,将所有选项卡视图弹出到RootViewController ...当我尝试弹出第5个或者第5个tabview ..后面的按钮在MoreViewController,第5个标签和第6个标签中根本不起作用......

这是有效的: 1)从1到4个选项卡弹回RootView

2)从更多视图弹回到RootView(仅在第一次工作时)

3)从第5 /第6视图回弹到MoreView(仅在第一次工作时)

这是什么不起作用: 1)不从MoreView弹出回RootView

我做错了什么?

- (void)viewDidLoad
{
...
   self.tabBarController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonSystemItemDone target:self action:@selector(goBack)];
...
}

每个标签中写入的goBack方法代码

-(void)goBack{

    [self.navigationController popToRootViewControllerAnimated:NO];
}

2 个答案:

答案 0 :(得分:0)

试试这个..可能会帮到你

NSArray *viewContrlls=[[self navigationController] viewControllers];
    for( int i=0;i<[ viewContrlls count];i++)
    {
        id obj=[viewContrlls objectAtIndex:i];
        if([obj isKindOfClass:[rootController class]])
        {
            [[self navigationController] popToViewController:obj animated:YES];

            return;
        }
    } 

答案 1 :(得分:0)

我想出了问题是什么,所以我将回答我自己的问题......我在每个标签中都写了popToRootViewController ..所以当我进入第五个标签然后按回来时,它会回到更多视图选项卡和忘记根视图..所以我从每个选项卡中删除了popToRootViewController并编写了用于在根视图页面中的标签栏声明时弹出视图的代码...例如。标签栏声明,然后设置标签栏导航按钮返回调用某些方法...并在该方法中我写popToRootViewController ......