Я создаю приложение, в котором корневое представление / окно является представлением на основе вкладок (созданным с помощью мастера XCode для создания приложения iPhone на основе вкладок), но в приложении также есть точка, в которой я хочу создать еще одно представление на основе вкладок и представить его модально.
У меня было так много проблем с созданием модального представления на основе вкладок в IB, что я в конечном итоге просто сделал это в коде, примерно так:
// *** In the event handler that causes the second-tab view to be presented ***
MyTabViewController *tabVC = [[MyTabViewController alloc] init];
[self presentModalViewController:tabVC.tabBarController animated:YES];
[tabVC release];
// *** Inside init() definition in MyTabViewController.m ***
UIViewController *vc1 = [[MyViewController1 alloc] init];
UIViewController *vc2 = [[MyViewController2 alloc] init];
tabBarController_ = [[UITabBarController alloc] initWithNibName:nil bundle:nil];
tabBarController_.viewControllers = [NSArray arrayWithObjects:vc1, vc2, nil];
tabBarController_.selectedIndex = 0;
Это работало нормально, пока я не начал пытаться писать в tabBarController_.tabBar.items, чтобы установить заголовки и изображения для кнопок, что, по-видимому, он не хочет делать для TabBar, который принадлежит TabBarController, давая эта ошибка:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason:
'Directly modifying a tab bar managed by a tab bar controller is not allowed.'
Поэтому я попытался вернуться к реализации MyTabViewController с использованием Interface Builder, чтобы я мог установить там кнопки, но я не могу понять это. Вот шаги, которые я предпринял, чтобы добраться туда, где я нахожусь:
- Создан новый класс, происходящий из UIViewController в XCode, и отмечен параметр «with XIB».
- Перетянул TabBarController в XIB (тот, за которым стоит желтый шар).
Я не могу понять, как заставить TabBar захватывать вид. Прямо сейчас представление, которое поставляется с XIB автоматически, пусто, и у меня есть этот UITabBarController, который полностью отключен от него. Если я попытаюсь перетащить TabBar из UITabBarController в View, он создаст новую TabBar вместо того, чтобы расположить TabBar в виде, чтобы он занимал весь вид.
Я прошу прощения, если я не объяснил это очень четко, но я действительно изо всех сил пытаюсь понять связь между TabBarController и View, то есть не могу понять, как заставить TabBarController фактически отображаться.
Любая помощь с этим будет высоко ценится. Я приложил скриншот из IB, если это вообще помогает.
альтернативный текст http://www.shelltoesmusic.com/files/tabbar_ib.png