如何以编程方式使用UITabBar

时间:2015-11-15 09:45:21

标签: ios swift uitabbarcontroller uipagecontrol

enter image description here

快速语言

主要问题

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

首次尝试

如果我使用 segues UITabBarController绿色蓝色视图相关联,那么指标将无法加载,只是杆

第二次尝试

如果我将UITabBarController pageviewcontroller 容器视图相关联,它会将它们添加到指标中,当我连接 blue <时我无法滑动后显示/ strong>和绿色视图。

上次尝试(未尝试过)

我唯一没有尝试的是在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 个答案:

答案 0 :(得分:0)

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

具有选项的全功能PageMenu。