2009-07-12 5 views
1

Я пишу приложение на основе UITabBarController, которое имеет более 10 viewControllers с соответствующими UINavigationControllers. Каждый viewContoller имеет (короткий) заголовок и (long) navigationTitle. Короткий заголовок отображается под значком TabBar, а длинное название отображается поверх панели навигации.Настройка списка «Больше» вкладок UITabBarController

UITabBarController отображает первые 4 вкладки и автоматически добавляет вкладку «Дополнительно», которая отображает список оставшихся вкладок. В этом списке отображается (короткое) название каждого из контроллеров представления. Как я могу сказать, чтобы вместо этого отобразить (long) navigationTitle?

ответ

3

Я недавно сделал это для приложения и нашел, что лучший способ сделать это - создать пользовательский источник данных, который переименовал заголовок в большую таблицу в длинное имя. Это просто непрактично, так как имена должны быть изменены слишком много раз (один раз при загрузке панели вкладок, один раз при большей нагрузке на просмотр, и снова на пользовательскую загрузку раздела, и снова на закрытом разделе).

Я нашел основные инструкции here и просто изменил название. Я использую plist для хранения всех коротких и длинных имен для каждого раздела.

Мой код cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [originalDataSource tableView:tableView cellForRowAtIndexPath:indexPath]; 
    cell.textLabel.text = [[sections objectAtIndex:indexPath.row+4] objectForKey:@"LongName"]; 
    return cell; 
} 
0

Вы должны попробовать иметь все вкладки по умолчанию (длинный), а затем программно изменять видимые вкладки на свои (короткие) имена. Дайте мне знать, если вы не знаете, как их программно изменить. Это на самом деле способ сделать то, что вы хотели в первую очередь. Я подробно остановимся на подсказке.

+0

Скажите, пожалуйста, как программно изменить видимые вкладки для их (короткие) имена. Между тем, я достиг этого путем подкласса UITabBarController, который также позволяет мне изменять цвета MoreViewController. – Vic

+0

Я также хотел бы узнать ваши мысли об этом, у меня есть аналогичная проблема. Я действительно не хочу подклассифицировать UITabBarController, чтобы программное изменение помогло. Проблема в том, что экран «configure» также отображает длинные имена, если вы это сделаете, и я не могу найти точку для изменения имен до появления этих значков. – bjtitus

+0

Я думаю, что это намного проще сделать, внедряя новый источник данных для большего контроллера навигации и переименовывая заголовок каждой ячейки. Это означает, что контроллеры представления не переименовываются каждый раз, а отображаются только отображаемые имена. В противном случае вам нужно изменить заголовок как минимум два раза (до экрана конфигурации и после), не считая изменения, когда загружаются элементы бара. – bjtitus

Смежные вопросы