Элемент UItabbar, не отображающий ссылку на раскадровку

Я пытаюсь использовать новые ссылки раскадровки на вкладке. Когда я использую ссылку на раскадровку, UITabBarItem (с настроенным изображением и набором текста) ничего не показывает. См. Настройку: раскадровка

настройка tabbaritem

Я исправил его на данный момент, установив изображения и заголовок в функции initWithCoder для начального диспетчера представлений в ссылочных раскадках, например:

static NSString *const ContactsViewControllerTabContactImageName = @"tab-contact";
static NSString *const ContactsViewControllerTabContactActiveImageName = @"tab-contact-active";

- (instancetype)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        self.title = NSLocalizedString(@"Contacts", nil);
        self.tabBarItem.image = [UIImage imageNamed:ContactsViewControllerTabContactImageName];
        self.tabBarItem.selectedImage = [UIImage imageNamed:ContactsViewControllerTabContactActiveImageName];
    }
    return self;
}

Ответы

Ответ 1

Вам нужно добавить элемент панели вкладок в диспетчере просмотра целевого раскадровки.

Конструктор интерфейсов View Destination Storyboard

Ответ 2

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

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

Сценарий:

UITabBarController → StoryboardReference → UISplitViewController

Проблема:

Вы не можете добавить UITabBarItem в UISplitViewController

Решение/Временное решение:

Добавьте UITabBarController в раскадровку UISplitViewControllers и назначьте UISplitViewController как одну из вкладок. UITabBarItem будет добавлен в UISplitViewController. Вы можете удалить ненужный UITabBarController. UITabBarItem будет сохранен.

Ответ 4

вы можете получить ссылку на раскадровку, такую ​​как

UIStoryboard * mainStoryboard = [UIStoryboard storyboardWithName: @ "MainStoryboard"                                                        bundle: nil];