如何使用 SingleViewApplication iOS 创建标签栏?

Posted

技术标签:

【中文标题】如何使用 SingleViewApplication iOS 创建标签栏?【英文标题】:How to create a tab bar using SingleViewApplication iOS? 【发布时间】:2016-12-10 06:41:07 【问题描述】:

我是 ios 新手,我的要求是实现 Tab 栏。 我有 5 个标签栏项目,每个项目都有不同的屏幕(UIViewController)。 我有一个 HomeViewController 和剩余的 4 个 ViewController。 我必须使用 tabBar 项目显示所有 UIViewControllers。 而且我必须在所有 UIViewControllers 的底部显示标签栏。

在图片中你可以看到。

在 Image 中,我在 HomeViewController 中,对于每个选项卡,我必须为各自的 ViewControllers 去,但所有 ViewControllers 都应该存在选项卡栏。 故事板:- 我阅读了教程,但仍然感到困惑。 我该怎么做?

谢谢

【问题讨论】:

添加您到目前为止所做的事情。你到底在哪里困惑?你不明白教程的哪一部分? tabBar的实现方式有很多,可以使用自己自定义的tabbar代替默认的TabBar。使用单视图或其他视图无关紧要..... 我已经实现了。我拿了一个视图控制器并拖动了一个标签栏。现在该怎么办? @GouravJoshi 请告诉我任何好的链接?谢谢 @kishor0011 显示您的故事板屏幕截图,它会让我们知道您尝试了什么。 【参考方案1】:

你可以像这样创建标签视图控制器的类

class TabBarViewController: UITabBarController 

    required init(coder aDecoder: NSCoder) 

    super.init(coder: aDecoder)!

override func viewDidLoad() 
    super.viewDidLoad()

    UITabBar.appearance().tintColor = UIColor(red: 254/255.0, green: 105/255.0, blue: 51/255.0, alpha: 100.0)

    for i in 0 ..< self.tabBar.items!.count 

        switch i 

        case 0:

            tabBar.items?[0].title = "Home"
            let firstTab = self.tabBar.items![i] as UITabBarItem
            learnTab.image = UIImage(named: "Homedeselected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            firstTab.selectedImage = UIImage(named: "Homedeselected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            firstTab.imageInsets = UIEdgeInsetsMake(-1, 0, 1, 0)
            firstTab.titlePositionAdjustment = UIOffsetMake(0, -4)


        case 1:

            tabBar.items?[1].title = "Request"
            let secondTab = self.tabBar.items![i] as UITabBarItem
            secondTab.image = UIImage(named: "RequestDeselected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            secondTab.selectedImage = UIImage(named: "Requestselected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            secondTab.imageInsets = UIEdgeInsetsMake(-1, 0, 1, 0)
            secondTab.titlePositionAdjustment = UIOffsetMake(0, -4)

        case 2:

            tabBar.items?[2].title = "Renew"
            let thirdTab = self.tabBar.items![i] as UITabBarItem
             thirdTab.image = UIImage(named: "RenewDeSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            thirdTab.selectedImage = UIImage(named: "RenewSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            thirdTab.imageInsets = UIEdgeInsetsMake(-1, 0, 1, 0)
            thirdTab.titlePositionAdjustment = UIOffsetMake(0, -4)

        case 3:

            tabBar.items?[3].title = "ReSell"
            let forthTab = self.tabBar.items![i] as UITabBarItem
            forthTab.image = UIImage(named: "ReSellDeSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            forthTab.selectedImage = UIImage(named: "ReSellSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            forthTab.imageInsets = UIEdgeInsetsMake(-1, 0, 1, 0)
            forthTab.titlePositionAdjustment = UIOffsetMake(0, -4)

        case 4:

            tabBar.items?[4].title = "ReCycle"
            let fifthTab = self.tabBar.items![i] as UITabBarItem
            fifthTab.image = UIImage(named: "ReCycleDeSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            fifthTab.selectedImage = UIImage(named: "ReCycleSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            fifthTab.imageInsets = UIEdgeInsetsMake(-2, 0, 2, 0)
            fifthTab.titlePositionAdjustment = UIOffsetMake(0, -5)

        default:
            break
        
    


override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) 

    let rootView = self.viewControllers![self.selectedIndex] as! UINavigationController
    rootView.popToRootViewControllerAnimated(ture)


    


【讨论】:

我有 5 个标签栏项目。如何为所有视图控制器显示它?在每个项目上。 您必须使用标签栏控制器并使用此标签栏控制器添加五个视图控制器,然后当我们选择标签时,关联的视图控制器会出现 不,我将标签栏拖放到视图控制器中。现在以编程方式我该如何处理? 将此类分配给您的酒吧控制器

以上是关于如何使用 SingleViewApplication iOS 创建标签栏?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?

WSARecv 如何使用 lpOverlapped?如何手动发出事件信号?