(这是我之前的问题的后续解答:How to accomplish a "90% slide" between two UIViews

当前状态:

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



感谢@rdelmar的指导,我现在可以完成这项工作。

问题:

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



我的想法:

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

因此,如果UINavigationController出局了(您可以告诉我它是否确实存在,或者我的上述结论是否正确),这听起来像是我需要手动创建各种层次结构并管理这些UIView的输入和输出方式。离开下框。这并不是世界上最糟糕的事情,但是当我想到UINavigationController免费提供它时,这很刺痛。

与往常一样,您的想法受到赞赏。谢谢!

最佳答案

UINavigationController当然没有出来:)

你说


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


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

而不是添加较低的UIViewController,而是添加一个以UINavigationController作为其根视图控制器的UIViewController

即代替

// 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上面的代码是从内存中键入的,因此某些方法名称可能不太正确!

关于ios - 在部分显示的UIView中导航,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18148946/

10-13 03:54