2015-08-14 1 views
0

Я ищу методу наилучшей практики ведения следующее:Правильный переход поток

У меня есть два TabBarController взглядов, внедренных в NavigationController и тот, который я не хочу, чтобы включить в качестве вкладки, но внедренные в NavigationController:

  1. FeedView (TableViewController)
  2. VenueView (CollectionViewController)

  3. SelectView (ViewController)

В VenueView (2), я следующий код, чтобы вызвать SelectView (3):

override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 

let selectVC: SelectViewController! = self.storyboard?.instantiateViewControllerWithIdentifier("selectVC") as! SelectViewController 

selectVC.currentVenue = venueItems[indexPath.row]  
    presentViewController(selectVC, animated: true, completion: nil) 

} 

Это SEGUE работает, однако SelectView (3) не имеет навигационную панель верхняя часть, хотя она встроена в отдельный навигационный контроллер. Если я подключу его к другому NavController в IB, он примет/станет третьей вкладкой в ​​BarTabController. Я не хочу этого.

Как подключить его так, чтобы появился NavBar (с обратной кнопкой, которая вернется к любому виду), но не Tab?

Кроме того, на SelectView (3) есть кнопка. Когда эта кнопка нажата, я бы хотел, чтобы она перешла к FeedView (1) - при сохранении некоторых данных, т.е. «нажав на канал». Какого рода segue я должен использовать для этого? Я пробовал много комбинаций и сталкивался с некоторыми странными ошибками, и я считаю управление View очень запутанным.

Раскадровка изображение ниже для справки Представления в порядке сверху вниз (1-3):

ответ

1

Для этого вам необходимо решить вашу проблему, вы должны предъявить контроллер навигации, который содержит SelectView, но не SelectView, как и вы сейчас.

Вы должны установить раскадровку идентификатор к вашему 3'rd навигации контроллеру и применить это изменение:

let selectNavigationController = self.storyboard?.instantiateViewControllerWithIdentifier("selectNavigationController") as! UINavigationController 
let selectVC = selectNavigationController.topViewController as! SelectViewController 
selectVC.currentVenue = venueItems[indexPath.row] 

presentViewController(selectNavigationController, animated: true, completion: nil) 
+0

спасибо за ответ - это было полезно, однако я должен был изменить 'пусть selectVC = selectNavigationController.rootViewController, как! SelectViewController' 'let selectVC = selectNavigationController.topViewController as! SelectViewController', потому что «UINavigationController» 'не имеет члена с именем ...' – SamYoungNY

+0

Я рад, это помогло. Извините за ошибку. –

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