gpt4 book ai didi

ios - Material 组件选项卡栏 Controller 错误

转载 作者:可可西里 更新时间:2023-11-01 02:01:28 26 4
gpt4 key购买 nike

使用 MDCTabBarViewController 选择标签栏项目时收到错误:“由于未捕获的异常‘NSInvalidArgumentException’而终止应用程序,原因:‘无效项目’”。查看 Controller 加载但在选择第二个选项卡后立即崩溃。

    class BusTabBarController: MDCTabBarViewController {

override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = .white
loadTabBar()
}

func loadTabBar() {

let firstVC = BusStopFlexibleHeaderContainerViewController()
let secondVC = BookmarksFlexibleHeaderContainerViewController()
let thirdVC = UIViewController()

let viewControllersArray = [firstVC, secondVC, thirdVC]
viewControllers = viewControllersArray

let childVC = viewControllers.first
selectedViewController = childVC

tabBar?.delegate = self

tabBar?.items = [UITabBarItem(title: "Recents", image: nil, tag: 0),
UITabBarItem(title: "Favorites", image: nil, tag: 0),
UITabBarItem(title: "YAY", image: nil, tag: 2)]

tabBar?.selectedItem = tabBar?.items.first

tabBar?.backgroundColor = MDCPalette.grey.tint900
tabBar?.selectedItemTintColor = .white
tabBar?.unselectedItemTintColor = MDCPalette.grey.tint400
tabBar?.inkColor = MDCPalette.blueGrey.tint100

}

感谢任何帮助。谢谢!

最佳答案

我也遇到了同样的问题。在执行MDCTabBarViewController的时候

-(void)setSelectedViewController:(nullable UIViewController *)selectedViewController 

被触发有一行代码:

self.tabBar.selectedItem = selectedViewController.tabBarItem;

因此,如果您不将 barItem 设置为 Controller ,您将收到该错误,因为引用为 nil

我更新了你的代码,所以我希望这能解决你的问题(我安装了 pod 版本 26)

class BusTabBarController: MDCTabBarViewController {

override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = .white
loadTabBar()
}

func loadTabBar() {

let firstVC = BusStopFlexibleHeaderContainerViewController()
firstVC.tabBarItem = UITabBarItem(title: "Recents", image: nil, tag: 0)

let secondVC = BookmarksFlexibleHeaderContainerViewController()
secondVC.tabBarItem = UITabBarItem(title: "Favorites", image: nil, tag: 0)

let thirdVC = UIViewController()
thirdVC.tabBarItem = UITabBarItem(title: "YAY", image: nil, tag: 2)

let viewControllersArray = [firstVC, secondVC, thirdVC]
viewControllers = viewControllersArray

let childVC = viewControllers.first
selectedViewController = childVC

tabBar?.delegate = self

tabBar?.items = [firstVC.tabBarItem,
secondVC.tabBarItem ,
thirdVC.tabBarItem]

tabBar?.selectedItem = tabBar?.items.first

tabBar?.backgroundColor = MDCPalette.grey.tint900
tabBar?.selectedItemTintColor = .white
tabBar?.unselectedItemTintColor = MDCPalette.grey.tint400
tabBar?.inkColor = MDCPalette.blueGrey.tint100

}
}

关于ios - Material 组件选项卡栏 Controller 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46002390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com