Можете ли вы программно получить имена вкладок в TabBarApp? - PullRequest
0 голосов
/ 29 ноября 2011

Я создал приложение tabBar в Интерфейсном Разработчике и назвал там все мои вкладки и элементы вкладок. Могу ли я теперь программно узнать или получить имена моих вкладок во время выполнения? Когда я делаю NSLog массива viewControllers, все, что я получаю, это:
( "", "", "", "", «» )

Это явно бесполезно - мне нужно получить более конкретную информацию.

Кроме того, я заметил, что вы не можете установить тег, заголовок или метку в IB для любого из контроллеров представления на ваших вкладках.

Итак, как вы можете определить с помощью кода, что у вас есть в разных вкладках? Или вам нужно угробить Interface Builder и делать все по коду?

Ответы [ 2 ]

1 голос
/ 29 ноября 2011
for(id btn in TabObject.tabBar.items)
    {
        if([btn isKindOfClass:[UITabBarItem class]])
        {
            UITabBarItem *sender=btn;
            NSLog(@"%@",sender.title);
        }
    }
1 голос
/ 29 ноября 2011

Элемент панели вкладок в каждом контроллере представления содержит заголовок.

for (UIViewController *viewController in tabBarController.viewControllers) {
    NSLog(@"%@", viewController.tabBarItem.title);
}

Сказав это, я думаю, что лучший способ обратиться к конкретным вкладкам - это иметь явные IBOutlet s от делегата приложения для каждого контроллера представления. Поскольку не будет больше, чем горстка, это не должно быть слишком много дополнительного кода.

...