如何在1项标签栏控制器中制作顶部标签栏以在swift中显示多个视图控制器?

时间:2017-12-23 06:03:19

标签: ios swift tabs uitabbarcontroller

我有标签栏控制器,显示一些项目。 标签栏控制器中的一个项目具有多个视图控制器,由顶部标签栏显示。 我已经尝试使用段控制和多个容器视图来实现它,但它没有正常工作。

这是我要制作的故事板StoryboardExample

我希望右侧的三个视图控制器在项目标签栏的View Controller 2中显示,并通过顶部标签栏进行控制。 因此,它类似于Youtube应用程序中的活动选项卡,其顶部标签栏包含项目共享和通知。 Shared View in Youtube ApplicationNotification View in Youtube Application

修改

这是从段控件中更改视图的代码,

@objc func changeGroup(sender: UISegmentedControl)
{
    if sender.numberOfSegments == 3
    {
        switch sender.selectedSegmentIndex
        {
        case 0 :
            if self.groupView.isHidden == true
            {
                self.groupView.isHidden = false
            }
            if self.inspirationView.isHidden == false
            {
                self.inspirationView.isHidden = true
            }
            if self.pesantrenView.isHidden == false
            {
                self.pesantrenView.isHidden = true
            }

        case 1:
            if self.groupView.isHidden == false
            {
                self.groupView.isHidden = true
            }
            if self.inspirationView.isHidden == true
            {
                self.inspirationView.isHidden = false
            }
            if self.pesantrenView.isHidden == false
            {
                self.pesantrenView.isHidden = true
            }

        case 2:
            if self.groupView.isHidden == false
            {
                self.groupView.isHidden = true
            }
            if self.inspirationView.isHidden == false
            {
                self.inspirationView.isHidden = true
            }
            if self.pesantrenView.isHidden == true
            {
                self.pesantrenView.isHidden = false
            }

        default :
            break
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您想要的是自定义标签栏控制器。按照这个线索,你将回家:https://github.com/codepath/ios_guides/wiki/Creating-a-Custom-Tab-Bar

在这里你应该知道,他们用UIView和Buttons手动创建标签栏我在这里实现了一个带有原生标签栏的基本版本:https://github.com/zameerascentic/customTabBarNative

您应该注意(与该教程不同):

  1. 标签栏位于此处的底部,您可以随意移动
  2. 单独创建视图控制器并将其加载到UIView中 在标签栏项目select delegate
  3. 上调用ContainerView
  4. 检查标签栏标签,它将是0等,因为它将是 viewControllers数组的索引 - 我们所有的视图控制器都是 加载到数组中以便于参考。
  5. 为ViewControllers提供要由标签栏
  6. 调用的storyboardID