ios - 更改选项卡栏中选项卡的目标 View Controller

标签 ios swift xcode uitabbarcontroller uitabbar

我真的很想知道如何快速更改标签栏项目的链接/目标 ViewController。

我的情况:

if (beforeDayX)
{
    //TabBar[0] (Home) shows my1Scene with my1ViewController 
} else
{
    // TabBar[0] (Home) shows my2Scene with my2ViewController 
}

我应该怎么做?可以吗?

最佳答案

注意:最初的答案是以编程方式创建 tabBar。但是由于 Josep(提问者)已经通过 Storyboard 创建了 tabBar,因此我在这里更改答案以满足需要。

假设:

(1) TabBar是使用UITabBarViewController创建的。类名:TabBarViewController

(2) Tabbar最初由WeekendVC、WeekdayVC、OtherVC组成。

(3) 根据条件,Tabbar 将变为:(WeekendVC 和 OtherVC)或(WeekdayVC 和 OtherVC)。

这是 TabBarViewController 的样子:

import UIKit

enum TypeOfDay {
    case weekday
    case weekend
}

class TabBarViewController: UITabBarController {

    var typeOfDay: TypeOfDay = .weekday

    override func viewDidLoad() {
        super.viewDidLoad()

        // Initial order is: WeekendVC, WeekdayVC, OtherVC
        if let currentViewControllers = self.viewControllers {

            let weekendVC = currentViewControllers[0]
            let weekdayVC = currentViewControllers[1]
            let otherVC = currentViewControllers[2]

            switch typeOfDay {
            case .weekend:
                self.viewControllers = [weekendVC, otherVC]
            case .weekday:
                self.viewControllers = [weekdayVC, otherVC]
            }
        }
    }
}

关于ios - 更改选项卡栏中选项卡的目标 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44192663/

相关文章:

iphone - 核心数据通过两个描述符对数据进行排序

swift - 快速删除前导字符和零

ios - Xcode 5 和图像

ios - 如何在 native react 中获取更新的设备 token ?

iphone - 如何使用 objective-c 从 UITabbarcontroller View 中删除 subview

iphone - 具有自动滚动功能的 ScrollView

javascript - 使用 Swift 在 iOS 中获取 Javascript 函数响应

swift - 如何为 UITableView 中的每个部分启用水平分页

ios - SpriteKit 中的毛玻璃效果?

ios - 文本上的操作标签