iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
自我挑戰組

iOS Junior的菜雞之路系列 第 10

快捷點按,迅速切換 TabBar

  • 分享至 

  • xImage
  •  

既然完成了第一頁的大部分的要素,那應該就要來建構其他的功能
為了達成這個要素,TabbarView會是我們會用到的元件

建立 tabBarViewController

tabType

在建立tabBarController之前先建立enum來儲存必要的要素

enum tabType {
    case first
    case second
    case third
    case four
    
    var img: String {
        switch self {
        case .first:
            return "personalhotspot"
        case .second:
            return "play.square"
        case .third:
            return "giftcard.fill"
        case .four:
            return "clock.circle.fill"
        }
    }
    
    var title: String {
        switch self {
        case .first:
            return "First"
        case .second:
            return "Second"
        case .third:
            return "Third"
        case .four:
            return "Four"
        }
    }
    
    var vc: Any
}

tabBarController

class tabBarController: UITabBarController {
    let subVC:[tabType] = [.first, .second, .third, .four]
    
    override func viewDidLoad() {
        configure()
    }

    func configure() {
        for i in subVC {
            let vc = UIViewController()
            vc.view.backgroundColor = .white
            vc.tabBarItem.image = UIImage(systemName: "\(i.img)")
            vc.tabBarItem.title = i.title
            // 必須要將VC加入到tabBarController內
            addChild(vc)
        }
    }
}

make rootViewController

因為tabBarView要成為第一個出現的ViewController
所以要指定為rootViewController

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let _ = (scene as? UIWindowScene) else { return }

        guard let windowSence = (scene as? UIWindowScene) else { return }
        window = UIWindow(frame: windowSence.coordinateSpace.bounds)
        window?.windowScene = windowSence

        window?.rootViewController = tabBarController()
        window?.makeKeyAndVisible()
    }

以上就可以簡單創造出TabViewController


坑:
記得要把那些創造出來的VC加入進去childVC,否則那些View是不會顯現


上一篇
可不可以把影片放進去一下下就好
下一篇
首頁升級,加載外部套件
系列文
iOS Junior的菜雞之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言