- (void)setUpTabBarItems {
NSMutableArray *itemsArray = [@[] mutableCopy];
UITabBarItem *firstTabBarItem = self.tabBarController.tabBar.items[0];
UITabBarItem *secondTabBarItem = self.tabBarController.tabBar.items[1];
UITabBarItem *thirdTabBarItem = self.tabBarController.tabBar.items[2];
UITabBarItem *fourthTabBarItem = self.tabBarController.tabBar.items[3];
UITabBarItem *fifthTabBarItem = self.tabBarController.tabBar.items[4];
UITabBarItem *sixthTabBarItem = self.tabBarController.tabBar.items[5];
}
我在UITabBarController
中以编程方式创建AppDelegate
。我在此方法之前为标签栏控制器设置了6个视图控制器。在上面的方法中,我打算设置标签栏项的图像和标题。
最后一行发生了崩溃,即检索UITabBar
项目数组的第6项。
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 5 beyond bounds [0 .. 4]'
我知道标签栏不会超过6个项目,所以我希望最后一个按钮是More
标签栏项目。但我无法检索它。
但是当我在UITabBarController
中制作Storyboard
时,它可以使用许多按钮。 (在这种情况下,最多6个,我不需要更多)
所有想法?
答案 0 :(得分:0)
如您所知,如果添加超过5个标签UITabBarController
仅显示前四个项目,则将标准更多项目添加为第5个标签。
items数组不会包含超过5个项目,因此如果您尝试访问超过4的索引(在这种情况下是更多选项卡的索引),它将明显崩溃。
如果您需要在“更多”标签上执行操作(例如,选择此标签),则可以使用UITabBarController
的{{1}}属性。