如何以编程方式使用 UITabBar

Posted

技术标签:

【中文标题】如何以编程方式使用 UITabBar【英文标题】:How to use UITabBar programmatically 【发布时间】:2015-11-15 09:45:20 【问题描述】:

Swift 语言

主要问题

在图像中,我有一个 green 和一个 blue 视图。我可以在这两个视图之间滑动,现在我想实现一个UITabBar,这样我就知道我选择了哪个视图。我试过UIPageControl,但我无法以任何方式自定义指标。我尝试创建一个UITabBarController,但我不知道把它放在哪里。

第一次尝试

如果我使用 seguesUITabBarControllergreenblue 视图连接起来,那么指示器将不会加载,只会加载条形图。

第二次尝试

如果我将UITabBarControllerpageviewcontrollercontainer 视图连接起来,它会将它们添加到指示器中,并且当我连接 blue 时> 和 green 视图之后我将无法滑动。

最后一次尝试(没试过)

我唯一没有尝试过的是在 pageviewcontrollers.swift 文件中以编程方式进行。我真的不知道如何以编程方式实现 TabBar,我想寻求帮助。如果您想知道为什么我宁愿使用UITabBar 而不是页面控件指示器,因为我可以将指示器编辑为图标。

pageviewcontroller 中的代码

import UIKit

class secondPageViewController: UIPageViewController , UIPageViewControllerDataSource, UIPageViewControllerDelegate 

    var pages = [UIViewController]()

    override func viewDidLoad() 
        super.viewDidLoad()

        self.delegate = self
        self.dataSource = self

        let page4: UIViewController! = storyboard?.instantiateViewControllerWithIdentifier("page4")
        let page5: UIViewController! = storyboard?.instantiateViewControllerWithIdentifier("page5")



        pages.append(page4)
        pages.append(page5)



        setViewControllers([page4], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
    


    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? 


        let currentIndex = pages.indexOf(viewController)!


        let previousIndex = abs((currentIndex - 1) % pages.count)


        if (previousIndex > 0)
        
            return nil
        



        return pages[previousIndex]
    

    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? 
        let currentIndex = pages.indexOf(viewController)!
        let nextIndex = abs((currentIndex + 1) % pages.count)


        if (nextIndex < 1)
        
            return nil
        

        return pages[nextIndex]

    






    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    



【问题讨论】:

【参考方案1】:

回答链接:https://github.com/uacaps/PageMenu

带有选项的功能齐全的PageMenu。

【讨论】:

以上是关于如何以编程方式使用 UITabBar的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 c# 检查 OpenOffice 是不是以编程方式安装

如何以编程方式创建和使用 UIcollectionView?

如何使用 Swift 以编程方式分配 IBOutlet?

如何以编程方式记录 PerformanceCounter

如何以编程方式使用 UIImageView Overlap 修复 UICollectionViewCell

如何以编程方式向以编程方式创建的 UIView 添加约束?