0

(这是我之前问题的后续:如何在两个 UIViews 之间完成“90% 幻灯片”

当前状态:

作为背景,我有一个容器视图控制器,它通过根据需要将它们“进出”滑动来管理两个单独的 UIView(及其各自的 UIViewController):

在此处输入图像描述

感谢@rdelmar 的指导,我现在有了这个工作。

问题:

这是我的下一个问题:我希望辅助视图(上面的黄色)是“可导航的” - 也就是说,我希望有一个可选项目的 UITableView,当被触摸时,在该下框架中显示不同的 UIView:

在此处输入图像描述

我的想法:

我曾考虑在较低的框架中嵌入一个 UINavigationView 控制器来处理这种导航,但我了解到(通过几个来源,例如UIViewController 内的 iPhone UINavigationController)无法将 UINavigationController 的功能“嵌入”到现有的 UIView 中——这是有意的接管整个屏幕。

所以,如果一个 UINavigationController 出来了(你可以告诉我它是否真的存在,或者我上面的结论是否不正确),听起来我不得不手动创建一个层次结构,并管理这些 UIViews 如何进入和离开下部框架。这不是世界上最糟糕的事情,但当我想到 UINavigationController 免费提供这个时,它就会刺痛。

一如既往,非常感谢您的想法。谢谢!

4

2 回答 2

2

UINavigationController肯定是不出来的:)

你说

我有一个容器视图控制器,它管理两个单独的 UIView(以及它们各自的 UIViewController)

在这里使用导航控制器只是一个微小的变化。

而不是添加 lower UIViewController,添加 a作为它UINavigationControllerUIViewController根视图控制器。

即代替

// If 'small' is the name of your smaller view controller
[self addChildViewController:small];
[self.view addSubview:small.view];

UINavigationController *n = [UINavigationController alloc] initWithRootViewController:small];
n.view.frame = small.frame;
[self addChildViewController:n];

[self.view addSubview:n.view];

您现在可以将新的视图控制器推入/弹出应用程序的底部。

我现在已经在一些应用程序(iOS 5 及更高版本)中完成了此操作,并且根本没有遇到任何问题。

PS 上面的代码是从内存中输入的,所以有些方法名可能不太正确!

于 2013-08-09T14:46:13.387 回答
0

我建议将根视图控制器设置为您的 UINavigationController,并简单地将齿轮视图覆盖在顶部作为 UINavigationController 的子视图。您可以使用 insertSubview:aboveSubview: 来执行此操作。

这将为您简化很多事情,因为您的功能核心应该是根视图控制器。

使用 UINavigationController 是非常可取的,因为您可以免费获得所有动画和堆叠逻辑。

于 2013-08-09T14:45:48.937 回答