#ios #ios5 #uitabbar
#iOS #ios5 #uitabbar
Вопрос:
Я хочу использовать стандартный элемент панели вкладок с пользовательским заголовком. Я меняю заголовок после создания TabBarItem непосредственно self.TabBarItem.title = @»Понравилось». Например, «Избранное» — UITabBarSystemItemFavorites:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title = NSLocalizedString(@"Liked", @"Liked");
self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:0];
self.tabBarItem.title = @"Liked";
}
return self;
}
Могу ли я это сделать? Если да, где я допустил ошибку?
UPD: изменение заголовка элемента панели вкладок в viewDidLoad () работает на iOS4, но не работает на iOS5. Существует ли другой подход?
Спасибо
Ответ №1:
Вы должны сделать это в viewDidLoad
, а не в инициализации.
Комментарии:
1. извините, но этот подход работает для меня только на iOS 4.3, но для iOS 5 он не работает:-( Есть идеи?
2. Кажется, что что-то переопределяет ваш заголовок. Проверьте жизненный цикл вашего ViewController, чтобы отследить, где это происходит.
Ответ №2:
В соответствии с Swift5.1 и Xcode заголовок и изображение элементов панели системных вкладок не могут быть изменены. Они определяются как enum в obj c следующим образом. Это список:
typedef enum UITabBarSystemItem : NSInteger {
case more, favorites, featured, topRated, recents, contacts, history, bookmarks, search, downloads ,mostRecent, mostViewed
} UITabBarSystemItem;
На это есть причина. Некоторые значки сразу узнаваемы во всей экосистеме iOS и означают одно и то же для всех, поэтому их невозможно использовать по-разному.
Таким образом, Apple создает лучший пользовательский интерфейс.
Вы не можете использовать значок Apple и использовать другой заголовок. Вместо этого вы можете использовать пользовательский значок и пользовательский заголовок или в раскадровках выбрать символ SF, подобный этому: