在我的应用中使用UITabBarController
时,我无法获取其中TabBar
中的第一个项目(即蓝色)。它只是保持黑色和灰色。
是否有其他方法可以激活TabBar中的某个项目?我正在使用:
self.tabController.selectedIndex = 0;
(对于感兴趣的事情,这是在AppDelegate中实例化的,因为委托正在处理欢迎视图),一旦被解除,从屏幕移除并且UITabController.view
正在接管。
更新:
在Main App Delegate中,我使用此代码显示tabController并设置索引:
#pragma mark - Click handlers
- (void) startApp:(id)sender {
[UIView transitionFromView:self.welcomeView
toView:self.tabController.view
duration:0
options:UIViewAnimationOptionTransitionFlipFromRight
completion:nil];
self.tabController.selectedIndex = 0;
}
self.tabController
不为空,否则我将无法在屏幕上看到该视图。
答案 0 :(得分:3)
这也发生在我身上。我终于意识到它归结为我为标签视图构建UITabBarItems的方式。由于无法找到为标签提供图像的正确方法的任何示例,我已经决定在每个视图中覆盖tabBarItem以返回我自己构建的UITabBarItem。这似乎可以正确加载图标,但是当我以编程方式更改selectedIndex时,不会更改高光。
昨晚我在Google图书的iOS图书中的子视图控制器的init方法中找到了这样的代码:
UIImage *anImage = [UIImage imageNamed:@"foo"];
self.tabBarItem.image = anImage;
以这种方式设置标签栏项目可以解决问题,并以编程方式为我切换标签时突出显示正确的按钮。
答案 1 :(得分:1)
self.tabController是否为nil?
NSLog(@" my tab controller is 0x%x", self.tabController);