2016-08-03 77 views
1

(我已阅读关于这一主题的其他问题和答案,但大多数都是很旧,不涉及到iOS 9或10)的iOS的UINavigationController类似的行为(2016)

的应用设计要求显示屏的上半部分始终包含相同的内容。 (正在由用户编辑的图像)

显示屏的下半部分需要UITableView。当点击一个UITableViewCell时,底部部分需要转换到带有滑动动画的新的UIViewController,类似于UINavigationController推动游戏的工作方式。

问题:只有底部视图需要转换到新的视图控制器,然后再回来。视图层次结构的上半部分需要保持不受影响。出于这个原因,我不能将所有内容放在UINavigationController之内,我不能在屏幕顶部有UINavigationBar

问题:我应该采取什么办法在这种情况下,在这里我只需要一个UIView层次的推SEGUE方式转型,而不是别的?谢谢。

编辑与解决方案

解决方案如下,供那些一起在家里以下。

Storyboard layout

Result

Push Segue

+0

你试图做这一切的故事板来跟踪变化呢?如果用代码编写,这会更简单。你可以从左右或左右对视图的框架进行动画制作 –

回答

2

是的,你可以在下半部分使用UINavigationController。

如果你使用故事板,要做到这一点最简单的方法是使用一个容器视图对于屏幕的每个部分,你则可以嵌入在顶部部分UIViewController,并在底部的UINavigationController部分。如果你正在以编程的方式进行此操作,只需将视图控制器作为子视图控制器添加到应用程序的初始视图控制器(有关详细信息,请参阅this answer),这实际上是故事板在使用容器视图时自动为您执行的操作。

作为一个子视图控制器,UINavigationController将独立于顶层的UIViewController进行操作,并且应该像预期的那样工作。

我推荐的程序化的方法有以下原因:

  • 它可以帮助您了解父/子视图控制器好得多,这将有可能节省您的调试时间上下行的显著量的内部运作。
  • 它使添加/删除/交换子视图控制器像几行代码一样简单。试图与故事板做到这一点是臭名昭着的和繁琐的。
  • 它更容易使用GIT(大多数中型/大型公司实际上禁止出于这个原因故事板)
+1

非常感谢你,也感谢其他受访者!遵循你的建议,我设法通过使用两个容器视图,在第二个容器中嵌入一个UINavigationController来嵌入我需要的UI。大声欢呼! – Womble

+0

我还会探讨一下关于使用代码更多的建议,而不是使用Storyboard。干杯。 – Womble

1

您可以在一个视图控制器中使用多个视图,并可以为push或pop等动画显示或隐藏它。

第二种方法是你可以使用Container View这将给导航堆栈的确切效果。