Как отправить представление с TabBarController в качестве Root

#ios #uinavigationcontroller

#iOS #uinavigationcontroller

Вопрос:

Я начинаю с разработки iOS.

В настоящее время я реализовал TabBarController, который объединяет 2 представления, в одном из которых есть TableView внутри.

Я пытаюсь заставить табличное представление отправлять другое представление при вызове didSelectRow.

То, что я пытаюсь сделать, похоже на AppStore на вкладке поиска. То есть: когда вы находите нужное приложение, вы нажимаете на строку таблицы — затем панель поиска исчезает, а панель навигации исчезает, открывая больше деталей.

Прямо сейчас я пытаюсь это:

 self.nav = [[UINavigationController alloc] initWithRootViewController:rootVC];
nav.delegate = self;    
self.detailView = [[detailView alloc] initWithNibName:@"detailView" bundle:nil];

[nav pushViewController:self.detailView animated:YES];
  

Где rootVC — это ViewController в моем secondView.

Это ничего не дает. Я вызвал NSLog, чтобы убедиться, что метод вызывается, и это так.

Любая помощь приветствуется.

Спасибо!

Ответ №1:

Есть ли у вас в приложении навигационный контроллер? Один из способов создать навигационный контроллер с контроллером панели вкладок — добавить навигационный контроллер для каждого элемента панели вкладок. Затем сделайте корневой контроллер представления навигационного контроллера одним из ваших 2 контроллеров views.

Комментарии:

1. Я пытался реализовать UINavigationController, но каждый раз, когда я изменяю свойства TabView Button на класс NavController (который реализует UINavigationController), все, что он возвращает, это пустой NavController с синей полосой вверху. Он вызывает viewDidLoad, но я не могу установить представление таким, каким я хочу, чтобы оно было!

2. вы не изменяете кнопку tabview, если вы добавили панель вкладок из nib, вы перетаскиваете UINavigation controller и устанавливаете контроллер панели вкладок. Пока вы не увидите свое окно как с панелью вкладок, так и с панелью навигации. Затем вы настраиваете корневой контроллер просмотра контроллера навигации на свой контроллер просмотра.