我正在构建一个iOS应用程序,它具有许多不同的视图并且也很困难。
我有一个标签栏,其中包含4个页面
当用户点击列表(第4个数字选项)时,我的应用程序需要显示带有分段控件的标题(或尚未确定控件的任何顶部栏),我想在此处移动Multiple ViewController。假设顶部栏有5个按钮,如下
对于这些不同的列表,我制作了不同的View控制器。我要在“我的列表”中移动的列表(它是主视图控制器,将作为主视图控制器处理,并将包含上述5个按钮)在此主视图控制器中,当我单击“主页”列表或“朋友列表”按钮时,它将移动相关顶部栏下方的View Controller(按钮列表)
有关更多说明,请参见下图。请让我知道我该怎么做。 。如何使子级View控制器占用特定区域。
答案 0 :(得分:0)
好吧,我认为您在使用IB或以编程方式使用Container视图时有些困惑。在IB中使用时,必须简单地为其创建一个相关类。就像您通过从对象库中拖动来创建View Controller并将其与可口可乐UIViewController类相关联。
我建议您观看this教程。其安静简单易懂。 但是您的问题的答案是:
按照您所说的,在顶部栏的下方获取一个UIView。您可以根据需要将其设置为全宽和全高。然后创建其出让。就像下面一样,将其用作
@IBOutlet var viewMain: UIView!
并以此移动您的子视图控制器
viewMain.addSubview(childViewController)
您完成了
答案 1 :(得分:0)
如果SegmentControl视图具有相同的设计,则每个视图都不需要单独的ViewController。 如果每个列表的UI完全不同,那么有很多方法可以做到这一点。
1-使用滚动视图,其内容宽度将为Screenwidth *视图数。 只需在scrollView中添加所有视图即可。
例如,您想要添加到两个视图中,这是代码
self.scrollView.contentSize = CGSize(width: UIScreen.main.bounds.size.width * 2, height: self.scrollView.frame.height)
let vc1 = your view controller
vc1.view.frame = CGRect(x: 0, y: 1, width: scrollView.frame.size.width , height: scrollView.frame.size.height)
let vc2 = your second viewcontroller
vc2.view.frame = CGRect(x: UIScreen.main.bounds.size.width, y: 1, width: scrollView.frame.size.width , height: scrollView.frame.size.height)
scrollView.addSubview(vc2.view)
scrollView.addSubview(vc1.view)
现在,如果您想更改可见视图
scrollView.scrollRectToVisible(CGRect(x: UIScreen.main.bounds.size.width * CGFloat(//Position of your view 1 or 2), y: 0.0, width: UIScreen.main.bounds.size.width, height: scrollView.frame.size.height), animated: true)
2-使用容器
3-也有非常好的开源库(pod),其中之一就是CarbonKit https://github.com/ermalkaleci/CarbonKit