2016-04-12 3 views
0

Я создал контроллер панели вкладок с 4 настраиваемыми элементами панели вкладок. Я хочу добавить навигационные панели (простой баннер с только заголовком на нем) к двум контроллерам представлений панели вкладок. Это то, что я сделал. предположим, что контроллеры с 4-мя вкладками - vc1, vc2, vc3, vc4. добавить некоторые коды в viewDidLoad() под файл vc1ViewController.mхотите добавить простую навигационную панель в контроллере просмотра панели вкладок

UINavigationBar *navBar = [[UINavigationBar alloc] init]; 
navBar.barStyle = UIBarStyleBlack; 
navBar.topItem.title = @"News"; 
UINavigationItem *title = [[UINavigationItem alloc]initWithTitle:@"news"]; 
[self.view addSubview:navBar]; 

Я также добавить TableView позже

[self.view addSubview:self.tv]; 

Когда я запустить приложение, таблица может быть показаны, но навигационной панели нет.

Что я могу сделать, чтобы исправить это? я просто хочу простую панель навигации с заголовком.

+0

спасибо, ребята. Я попытался перетащить навигационную панель в один из файлов xib и появился. Так что я думаю, может быть, я просто могу добавить панель навигации по коду. Кажется, я ошибся. – rickyjoy

ответ

0

Вы должны создать UINavigationController (который является специальным ViewController и установить его для вкладки.) Это создаст навигационную панель для вас. (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/)

+0

спасибо человеку. Еще один вопрос: я изменил контроллеры представлений в UINavigationController. Появилась панель навигации. Теперь я добавляю заголовок, добавляя этот простой код в viewDidLoad() под nav1.m "self.navigationBar.topItem.title = @" news ";" NO TITLE APPEARED – rickyjoy

0

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

Таким образом, вместо того, чтобы использовать VC1, VC2, VC3, VC4 на панели вкладок, используйте NAV1, NAV2, nav3, nav4 показано ниже:

UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:vc1]; 
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:vc2]; 
UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:vc3]; 
UINavigationController *nav4 = [[UINavigationController alloc] initWithRootViewController:vc4]; 

Оттуда вы можете установить заголовок с:

[vc1 setTitle:@"title1"]; 
[vc2 setTitle:@"title2"]; 
[vc3 setTitle:@"title3"]; 
[vc4 setTitle:@"title4"]; 

Как объяснен в UINavigationController Docs:

Если нет вида пользовательского заголовка не установлен, навигационная панель отображает ярлык, содержащий вид CONTR oller по умолчанию. Строка для этой метки обычно получается из свойства title самого контроллера представления. Если вы хотите отобразить другой заголовок, отличный от того, который связан с контроллером представления, установите вместо этого свойство title элемента навигации контроллера просмотра.

+0

спасибо человеку. Еще один вопрос: я изменил контроллеры представлений в UINavigationController. Появилась панель навигации. Теперь я добавляю заголовок, добавляя этот простой код в viewDidLoad() под nav1.m "self.navigationBar.topItem.title = @" news ";" NO TITLE APPEARED – rickyjoy

+0

@ rickyjoy просмотрите обновленный ответ –

+0

спасибо за ваш ответ, но он по-прежнему не имеет названия. Я также читал UINavigationController Docs. Интересно. – rickyjoy

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