【问题标题】:iPhone Sdk: How to add a second UINavigationController?iPhone Sdk:如何添加第二个 UINavigationController?
【发布时间】:2010-08-14 20:24:29
【问题描述】:

我从苹果提供的基于导航的模板创建了一个应用程序。现在我想向我的应用程序添加第二个导航控制器,包括一个新的 UITableView。谁能告诉我如何做到这一点?谢谢!

【问题讨论】:

  • 您确定要新的导航控制器而不是新的视图控制器吗?
  • 是的,因为我想创建一个全新的视图 heirachy。
  • 你想用工具栏或标签栏在这些导航控制器之间切换吗?还是导航控制器应该出现在模式对话框中?或者第二个需要什么?
  • 在应用程序中的某个时刻,我希望第二个导航控制器从底部升起,在第二个视图控制器内部,我想在不同的 tableViews 中导航。我希望它以与它出现的相同动画(幻灯片从上到下)被解雇
  • 我的看法,如果我只是添加一个常规的视图控制器,我只有两个选择:要么我可以将它推入,然后我总是得到与原始导航控制器的后退按钮的连接,或者我做了一个简单的presentModalViewcontroller,但是我将无法使用后退按钮和正确的动画浏览表格视图。看看我要去哪里?

标签: iphone objective-c uitableview uinavigationcontroller


【解决方案1】:

我认为这是可以做到的。在您的应用程序委托中,您通常会执行类似的操作 [window addSubview:navController.view]。 UIWindow 只是一个 UIView。因此,如果您在 UIViewController 中创建两个 UIView ivars 将包含两个导航控制器,您应该能够做类似的事情:

@interface MyViewController : UIViewController
{
  UIView* upperView;
  UIView* lowerView;
}

等等……

MyUpperRootViewController* myUpperRVC = [[MyUpperRootViewController alloc] init...
UINavigationController* myUpperNavController = [[UINavigationController alloc] initWithRootViewController:myUpperRVC];
[upperView addSubview:navController.view];
[myUpperRVC release];

lowerView 上的类似内容。

在根视图或推送到控制器上的后续视图中,以通常的方式访问它们,就好像有一个导航控制器一样。 [self.navigationController push... 应该正常运行。

对于视图控制器的进出动画,只需将动画应用于视图 - upperView 或 lowerView。您可能希望从它们的帧离开可见显示开始,然后将它们更改为动画块内的可见内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 2015-06-27
    • 2018-11-18
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多