UITabBarController.selectedIndex不会更改tabBar图标?

时间:2011-07-24 20:06:47

标签: iphone objective-c ios uiviewcontroller

在我的应用中使用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不为空,否则我将无法在屏幕上看到该视图。

2 个答案:

答案 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);