我应该使用UIViewController还是UIView? 制作自定义标签栏/导航控制器

我正在做一个应用程序,它有一个底部栏和一个顶部栏(都是自定义的),我希望他们留在那里的应用程序的整个长度,而中间部分切换视图。 但踢球者是在应用程序中的某些点,我想要顶部的酒吧和底部栏滑出屏幕,并能够被拖回去。

我在想的是有一个主UIViewController与三个UIViews(顶部栏,中间部分和底部栏),每个从他们各自的文件运行代码。 有点像标签栏如何与导航控制器一起工作。 或者我有倒退? 我真的不知道…但任何build设性的意见帮助=)

我相当新的Xcode和我一直在试图find一个方式,现在几天,所以请不要对我太苛刻。 谢谢!

一般来说,我们为每个“screenful”的内容构build一个视图控制器。 所以对你来说基本的build议就是让应用程序在每个“部分”都是自己的视图控制器的方式。 这对于MVC范例来说尤为重要,您的业务逻辑应该位于viewControllers中,而不是视图(仅显示和交互逻辑)。 如果您只有一个视图控制器,那么通过尝试pipe理多个部分会使FAST变得复杂。

一条好的路线可能是这样的:将整个层次结构embedded到导航控制器中,从而为您提供顶级栏。 然后做一个自定义视图控制器类,知道如何使你的底部栏,并有每个部分的子类。

副作用是每个区段VC将唯一地创build底部栏。 如果这不是你想要的,你可以探索视图控制器'遏制'。 它基本上是一种用于构build导航控制器这样的组件的技术,它将某些元素长时间保持在屏幕上,同时在屏幕的较小部分交换“内容”视图控制器。 这不是最简单的事情,应该仔细考虑。 但是,如果您确实需要在屏幕上保留相同的实例 ,而其他视图控制器来来去去,那么这可能是正确的select。 这就是说,首先考虑其他想法(每个部分pipe理它自己的底部栏)。 您可以通过促进代码重用等方式来实现它。