Разработчик iPhone — заголовок UIViewController, tabBarItem, тег
-
19-09-2019 - |
Вопрос
У меня есть 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, это можно сделать несколькими способами.Единственная «правильность», о которой вам следует беспокоиться, — это то, что лучше всего подходит для вашей ситуации.