2017-01-31 5 views
0

У меня есть ViewController (VC_1), встроенный в NavigationController. В VC_1 есть TableView с ячейками, и из каждой ячейки происходит переключение на ViewController с подробной информацией (VC_2).Два segues из ViewController и ViewController в контроллере навигации

Поэтому, когда я касаюсь любой ячейки в VC_1, я получаю VC_2 с навигационной панелью и кнопкой возврата.

Что делать, если у меня есть отдельный ViewController VC_3, который не находится внутри NavigationController. Он также имеет ячейки с segue для VC_2 с тем же идентификатором, что и ячейка VC_1. Когда я добираюсь до VC_2 от VC_3, я не вижу навигационную панель с кнопкой «Назад». Каковы способы его решения?

enter image description here

+0

** Когда я добираюсь до VC_2 от VC_3, я не вижу навигационную панель с обратной кнопкой. ** как ур представляет/отображает от VC2 до VC3 –

+0

Я могу открыть VC_3 из VC_1, и после этого у меня есть segue от каждой ячейки до VC_2 (вид = Показать деталь (например, заменить)) – moonvader

+0

Вам не нужно давать каждому VC свой собственный контроллер навигации. Либо вы не используете контроллер навигации корневого VC для представления других VC, либо вы встраиваете каждый VC в свой собственный контроллер навигации. Пожалуйста, покажите нам какой-то код, поэтому мы можем выяснить, какой. – dylanthelion

ответ

1

Вы можете поместить другой navigation controller прямо позади (VC_3)

Надеется, что это было полезно :)

+0

, но что, если я хочу, чтобы в каждом случае была панель навигации в VC_2? – moonvader

+0

жаль, что я неправильно понял ваш вопрос, а затем прочитал его снова, и я отредактировал свой ответ. Я не понимаю, как ваш (VC_3) НЕ в вашем навигационном контроллере, но я думаю, что даже если его вне контроллера навигации вы можете поместить другой навигационный контроллер прямо за (VC_3) –

+0

Я пробовал это без везения – moonvader

0

Если вы покажете VC_3 из VC_1 с Show (например, кнопка) непосредственно перейти панель навигации должен появиться в VC_3.

Что делать, если у меня есть отдельный ViewController VC_3, который не находится внутри NavigationController.

Отсюда я понимаю, что вам не нужна панель навигации на VC_3. Таким образом, вы можете скрыть панель навигации в viewWillAppear из VC3 и показать его снова в viewWillDissappear как в этом ответе:

How to hide a navigation bar from first ViewController in Swift?

Затем, если вы сделаете переход от VC_3 к VC_2 с Show (например, Нажмите), вы будете иметь навигацию на VC_2 без проблем.

Если после этого он все еще не работает, проверьте, что вы хорошо создаете ячейку в VC_3, используя метод dequeueReusableCell withIdentifier.

+0

Я хочу NavigationBar чтобы быть видимым в VC_2 каждый раз. И у меня проблемы с навигационной панелью, когда я делаю segue от VC_3 до VC_2 – moonvader

+0

Вы скрываете навигационную панель VC_3 от раскадровки? Если нажатие с VC_1 на VC_3 правильное, панель навигации должна появиться на раскадровке. – Jaumefm17

0

Добавить в новый контроллер навигации к своей доске объявлений. Теперь измените перетекает так:

Vc_1 -> новый навигационный контроллер -> vc_3

Если тат не имеет смысла, это то, что я имею в виду, изменить SEGUE, что в настоящее время происходит от VC1 в VC3 и перейдите к новому контроллеру навигации, а затем подключите этот контроллер навигации и сделайте vc3 своим контроллером корневого представления.

0

Попробуйте положить это в проблемном ВК:

override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 
     self.navigationController?.setNavigationBarHidden(false, animated: false) 
    } 

И убедитесь, что перетекает используют толчок. :)

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