iPhone应用程序 - UINavigationController和UITabBarController的组合

时间:2010-07-19 04:25:50

标签: iphone uiviewcontroller uinavigationcontroller uitabbarcontroller

我想用复杂的视图制作登录应用程序。

要求流程如下:

Login Page --> Menu Page --> Detail Page with Tab Control. --> Navigation Page

这里的“细节页面”又是两个视图的组合。导航视图和选项卡视图。

即。 “细节页面”将在顶部具有导航控件(导航栏),控件的其余部分为选项卡控件,以便用户可以在任何位置切换选项卡。如果用户按下导航控件中的“下一步”,他们将转到新页面,并可以通过从下一页按回来再次返回“标签视图”。

此外,我还有更多选项卡不适合单个选项卡视图,所以我希望最后一个选项卡更像是更多选项,并且会转到不同的视图(自定义表格视图)。

目前我已经开发了Window基础应用程序,如下所示。

  1. 从委托初始化的主控制器(MainSwitcherViewController)。
  2. 此主控制器具有多个其他UIViewsController的引用

    例如:

    • LoginViewController,它是UIViewController。
    • MenuViewController,它是UIViewController。
  3. 最初我展示了LoginViewController。

  4. 成功登录后,我会显示MenuViewController。
  5. 从MenuViewController上的任何操作(选择菜单 - 当前添加为UIButton),我打开新视图但不是新视图(UIViewController)我想进入导航视图和标签视图组合视图,如上所述
  6. 这是我的问题:

    1. 我设计屏幕/视图的方法是正确的还是我需要采取另一种方法?
    2. 如何在UIViewController和TabViewController或NavigationViewController之间切换?
    3. 如何在顶部和底部TabBarViewControl上创建具有导航控件的组合控制器,使每个选项卡导航控件可见(共享)。
    4. 我是iPhone应用程序开发的初学者,

      请给我一些有类似例子的指针或链接。

      提前致谢。

1 个答案:

答案 0 :(得分:0)

好的,首先你的方法很好。您可以在与UINavigationController相同的类中使用UITabBarController。只需创建标签栏控制器,并在同一类中创建导航控制器。用户将能够在该视图中使用它们。

要在带有标签栏的班级中执行此操作:

UITabBarController *mainTabBar = [[UITabBarController alloc] init];

然后将视图添加到该选项卡栏控制器。在其中一个UIViewController中,添加一个导航控制器:

UIViewController *mainViewController = [[MainViewController alloc] init];
mainViewController.title = @"Welcome";
UINavigationController *mainViewNavController = [[UINavigationController alloc] init];
[mainViewNavController pushViewController:mainViewController animated:NO];

然后只需将标签栏与新视图一起添加到视图中:

mainTabBar.viewControllers = [NSArray mainViewNavController, nil];

记得只将导航控制器添加到标签栏控制器,因为如果你像往常一样添加类,它将没有导航控制器功能。

希望这有帮助,如果没有,我会很乐意澄清任何事情。