【发布时间】:2018-02-10 15:29:57
【问题描述】:
使用 MDCTabBarViewController 选择选项卡栏项目时收到错误:“由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'无效项目'”。视图控制器加载但在选择第二个选项卡后立即崩溃。
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
}
感谢任何帮助。谢谢!
【问题讨论】:
-
@MwcsMac 不使用 UINavigationController,只是一个 MDCTabBarViewController 下有 2 个 MDCFlexibleHeaderContainerViewControllers
-
@MwcsMac 在选择下一个选项卡时也不使用任何代码
-
通过将 viewControllers 数组中每个视图控制器的 TabBarItems 设置为其对应的 TabBarItem 来解决问题
标签: ios swift tabbarcontroller material-components