iPhone dev - заголовок UIViewController, tabBarItem, тег - PullRequest
1 голос
/ 20 августа 2009

У меня есть UITabBarController, который управляет 5 контроллерами представления. Я создаю их элементы панели вкладок в их методах "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 ]

1 голос
/ 21 августа 2009

Ну, по моему мнению, любой из этих способов в порядке, он может быть более читабельным, когда вы объявляете UIImage в одной строке и устанавливаете его в другой строке, а не делаете все это встроенным, но в конце вы получите тот же результат .

TabBarItems имеет заголовок, который представляет собой текст, который будет отображаться в элементе панели вкладок сам. Контроллеры представления имеют заголовок для целей контроллера навигации, заголовок просмотра контроллеров отображается в NavBar NavigationControllers, если он установлен. И вам нужны теги, теги - это способ, которым вы различаете кнопки, когда кто-то нажимает на них (когда вы сами управляете TabBar).

0 голосов
/ 21 августа 2009

Причина, по которой существует несколько способов установить название, - для удобства. Возможно, вы захотите отобразить один заголовок на панели навигации и один заголовок на панели вкладок.

На самом деле это довольно часто, поскольку на панели вкладок меньше места для отображения текста.

Как и многие вещи в Какао, есть несколько способов сделать это. Единственная «правильность», о которой вам нужно беспокоиться, - это то, что лучше всего подходит для вашей ситуации.

...