Вопрос

У меня есть 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, так и для контроллера представления?И я не думаю, что мне нужен тег (который установлен в первом методе).

Спасибо!!

Это было полезно?

Решение

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top