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

最佳答案

我也正在发生这种情况。我终于意识到它归结为我为选项卡视图构造UITabBarItems的方式。无法找到为选项卡提供图像的正确方法的任何示例,我决定在每个视图中覆盖tabBarItem,以返回我自己构造的UITabBarItem。这似乎可以正确加载图标,但是当我以编程方式更改selectedIndex时,不会改变背景。

终于在昨晚,我在Google图书的一本iOS图书的子视图控制器的init方法中找到了这样的代码:

UIImage *anImage = [UIImage imageNamed:@"foo"];
self.tabBarItem.image = anImage;

以这种方式设置选项卡栏项目可以解决在以编程方式切换选项卡时突出显示正确按钮的问题。

10-07 21:24