1

我有一个管理 5 个视图控制器的 UITabBarController。我在他们的“init”方法中创建他们的标签栏项目,以便在加载视图之前显示它们。我只是想知道我应该怎么做,因为似乎有很多方法。例如,对于我的 DatePickerViewController:

- (id)init {
    if((self = [super init])) {
        // ================ THIS ==========================
        UIImage *clockIcon = [UIImage imageNamed:@"clockicon.png"];
        UITabBarItem *localTabBarItem = [[UITabBarItem alloc]
                initWithTitle:@"Date" image:clockIcon tag:0];
        [self setTabBarItem:localTabBarItem];
        [localTabBarItem release];
        // ================ OR THIS ========================
        [self setTitle:@"Date"];
        UITabBarItem *localTabBarItem = [[UITabBarItem alloc] init];
        [localTabBarItem setImage:[UIImage imageNamed:@"clockicon.png"]];
        [self setTabBarItem:localTabBarItem];
        [localTabBarItem release];
        // ================ OR THIS ========================
        UITabBarItem *localTabBarItem = [[UITabBarItem alloc] init];
        [localTabBarItem setTitle:@"Date"];
        [localTabBarItem setImage:[UIImage imageNamed:@"clockicon.png"]];
        [self setTabBarItem:localTabBarItem];
        [localTabBarItem release];
    }
    return self;
}

我应该采取哪种方式?为什么 tabBarItem 和 View Controller 都有标题?而且我认为我不需要标签(在第一种方法中设置)。

谢谢!!

4

2 回答 2

1

好吧,在我看来,这些方法中的任何一种都可以,当您在一行中声明 UIImage 并将其设置在另一行而不是全部内联时,它可能更具可读性,但最终您会得到相同的结果。

TabBarItems 有一个标题,它是在标签栏项目本身中显示的文本。视图控制器有一个用于导航控制器目的的标题,视图控制器标题在设置时显示在 NavigationControllers NavBar 中。而且您确实需要标签,标签是当有人单击它们时区分按钮的方式(当您自己管理 TabBar 时)。

于 2009-08-20T20:06:56.160 回答
0

有几种方法设置标题的原因是为了方便。您可能希望在导航栏中显示一个标题,在选项卡栏中显示一个标题。

这实际上很常见,因为在标签栏中显示文本的空间较小。

像 Cocoa 中的许多事情一样,有不止一种方法可以做到这一点。您需要关注的唯一“正确性”是最适合您的情况。

于 2009-08-20T22:39:41.280 回答