Обработка дополнительного контроллера навигации в приложении TabBar на основе Interface Builder - PullRequest
0 голосов
/ 10 мая 2010

Мне все еще не ясно, как и когда использовать интерфейсный конструктор. У меня есть приложение на основе вкладок, в которое я добавил 6 контроллеров навигации. Вместо того, чтобы иметь 6 вкладок, я хотел бы 3 плюс вкладка «Еще», которая позволяет пользователю настраивать вкладки, которые он хочет.

Есть ли способ сделать это с IB? И если нет, как я могу перейти от IB к основанной на коде панели вкладок (при условии, что я уже настроил класс TabBarController, который обрабатывает shouldAutoRotate:)

Заранее спасибо!

1 Ответ

0 голосов
/ 10 мая 2010

Я решил свою проблему. Так как у меня уже была идентификация класса, указанная для TabBarController в IB для моего контроллера панели вкладок, я добавил это:

NSMutableArray *customizeable = [[NSMutableArray alloc] init];
for (id controller in tabBarController.customizableViewControllers)
{
    if ([controller isKindOfClass: [MyCustomizeable class]])
        [customizeable addObject:controller];
}
tabBarController.customizableViewControllers = customizeable;
[customizeable release];

только ниже:

[window addSubview:tabBarController.view];

по моему ApplicationDelegate

благодаря http://www.mactech.com/articles/mactech/Vol.25/25.03/iPhoneProductivityApplicationsPart1/

обратите внимание, что у меня могла бы быть эта работа только с этими строками:

NSMutableArray *customizeable = [[NSMutableArray alloc] init];
tabBarController.customizableViewControllers = customizeable;
[customizeable release];

Но я хотел контролировать, какие вкладки можно переупорядочить

...