0

我有UIViewControllerUITabBarControllerUIViewController包含 5 个按钮和UITabBarController5 个选项卡。

通过点击第一个按钮应用程序显示TabBarController第一个选定的选项卡,第二个 -TabBarController使用第二个选项卡,依此类推......

为了准备这个,我Modal-segue对每个按钮都使用了。

一切正常。

TabBarController现在我需要在's上创建“主页”按钮(可能以编程方式)UINavigationBar,它将执行“返回主页视图”操作。

编辑了更多细节

{见下面的截图}

  1. 初始 UIViewController
  2. UITabBarController
  3. 导航控制器
  4. UIViewControllers

在12之间有两个模态转场(两个按钮 - 两个转场)

在UIViewController 中的prepareForSegue中:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    AppDelegate *d = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    if ([segue.identifier isEqualToString:@"s1"]) {
        d.initialTab = 0;
    }
    else if ([segue.identifier isEqualToString:@"s2"]) {
        d.initialTab = 1;
    }
}

在我的 UITabBarController 中的viewDidLoad中:

TabController *mainTabController = (TabController *)self;
    AppDelegate *d = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    [mainTabController setSelectedIndex:d.initialTab];

这是作品!

但我需要回到主页。因此,如果 TabBarController 之后有一个 NavigationController,我想在 NavigationBar 中创建一个按钮。

在此处输入图像描述

4

1 回答 1

1

我建议您将一个导航控制器作为父级。
然后,将您的启动视图添加为它的根视图。

申请流程建议

在您的主视图控制器页面上,

- (void)viewWillAppear:(BOOL)animated
{
   self.navigationController.navigationBarHidden = NO;
}

因此,它将隐藏您的主导航。所以无需担心这个内部导航流程。
对于内部导航,您已经采用了不同的导航控制器。

通过使用代码:

[self.parentViewController.navigationController popToRootViewControllerAnimated:YES];

您将位于应用程序的根目录,它将弹出所有堆叠在应用程序中的视图控制器。

希望您能理解流程并在您感觉良好时申请。

享受编码。
谢谢。

于 2013-03-13T08:54:11.573 回答