iPhone dev - UIViewController标题,tabBarItem,标记

时间:2009-08-20 19:49:52

标签: iphone uiviewcontroller methods title uitabbaritem

我有一个管理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都有标题?而且我认为我不需要标签(在第一种方法中设置)。

谢谢!

2 个答案:

答案 0 :(得分:1)

在我看来,这些方法中的任何一种都可以,当你在一行中声明UIImage并将其设置在一个不同的行而不是全部内联时,它可能更容易阅读,但最后你会得到相同的结果

TabBarItems有一个标题,它将显示在标签栏项目iteself中。视图控制器具有导航控制器用途的标题,视图控制器标题在设置时显示在NavigationControllers导航栏中。而且你确实需要标签,标签就是当有人点击它们时(当你自己管理TabBar时)告诉按钮分开的方式。

答案 1 :(得分:0)

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

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

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