【问题标题】:Issue with popping back to Root View controller in a tab bar controller在标签栏控制器中弹回根视图控制器的问题
【发布时间】:2013-02-19 17:45:53
【问题描述】:

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

以下是有效的: 1)从 1 到 4 个标签弹回 RootView

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

3)从第 5/6 个视图弹回更多视图(仅在第一次工作时)

以下是不起作用的: 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];
}

【问题讨论】:

  • 奇怪的是 1 到 4 个选项卡可以工作,但 5 和 6 个选项卡不工作...你试过 [self.navigationController popToRootViewControllerAnimated:YES];也许它有效
  • 我已经尝试使用 popToRootViewControllerAnimated:YES .. 它只添加了额外的动画......但问题仍然存在
  • 我发布了一个代码,请尝试一下,让我知道它是否有效

标签: ios uinavigationcontroller uitabbarcontroller


【解决方案1】:

试试这个..也许它会帮助你

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;
        }
    } 

【讨论】:

  • 使用此代码,显示相同的tabview...它动画到相同的tabview本身..!!
  • 你是否在这一行添加了你的控制器名称 if([obj isKindOfClass:[rootController class]]) 并将你的对象传递到这一行 [[self navigationController] popToViewController:obj animated:YES];
  • 我使用了同样的代码... for(UIViewController *viewController in tabBarController.viewControllers) { if([viewController isKindOfClass:[UINavigationController class]]) [(UINavigationController *)viewController popToRootViewControllerAnimated :不]; } 但迭代到相同的 tabview
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    相关资源
    最近更新 更多