0

У меня есть результат моего UISearchController в отдельном UITableViewController (TableSearch).Показать viewController через другой viewController, Swift

Я хочу, когда мы выберем строку, чтобы показать DetailViewController с navBar и tabBar, а также кнопку возврата, которая ведет к SearchViewController.

Я пробовал:

dispatch_async(dispatch_get_main_queue(), {() -> Void in 

     var viewController = UIViewController() 
     titreDetail = "Boo" 
     viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("Detail") as! DetailViewController 

     self.showViewController(viewController, sender: nil) 
    }) 

Но представить DetailViewController без NavBar и TabBar.

Я попробовал это после того, как:

dispatch_async(dispatch_get_main_queue(), {() -> Void in 
     //SearchViewController 
     var vc = UIViewController() 
     vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("Search") as! SearchViewController 
     //DetailViewController 
     var viewController = UIViewController() 
     titreDetail = "Boo" 
     viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("Detail") as! DetailViewController 

     vc.showViewController(viewController, sender: nil) 
    }) 

Ничего не происходит ..

Как я могу это сделать, чтобы иметь что-то вроде:

SearchTable -> SearchViewController -> DetailViewController?

Спасибо!

enter image description here

+0

использование 'pushViewController' вместо' presentViewController' – Daniel

+0

Я попытался vc.navigationController .pushViewController (ViewController, анимированный: истина)? И self.navigationController .pushViewController (ViewController, анимированный: правда?). Ничего не происходит. SearchTable не связан с навигационным контроллером. –

+0

Вам придется либо сначала всплывать в searchTable, либо снова создать navBar/tabBar для нового ViewController, либо нажать клавишу searchTable, чтобы наследовать navBar/tabBar – Daniel

ответ

0

использование self.navigationController .pushViewController (ViewController, анимированные: правда)?

+0

Я пробовал vc.navigationController ? .pushViewController (viewController, animated: true) и self.navigationController? .pushViewController (viewController, animated: true). Ничего не происходит. SearchTable не связан с навигационным контроллером. –

+0

вы хотите перейти от контроллера вида поиска к таблице поиска, а таблица поиска не отображает панель навигации наверху ..Right ...? –

+0

Когда я нахожусь в searchTable, я хочу перейти в DetailViewController, он показывает DetailViewController, но по умолчанию, а navBar и Tabbar исчезли .. –

0

self.navigationController .pushViewController (ViewController, анимированные: правда) вид контроллер экземпляр, который вы создали контроллера вы хотите нажать - L.Valentine

0

Фактически я создал протокол делегата, и он отлично работает.

protocol SearchTableDelegateProtocol { 
    func didTapExtendInSearchViewControllerWithIndex(hashtag: String, inTrending: SearchTable) 
} 

class SearchTable : UITableViewController, UISearchResultsUpdating { 

var delegate : SearchTableDelegateProtocol? 
.... 

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    print("vc1") 
    tableView.deselectRowAtIndexPath(indexPath, animated: true) 
    dispatch_async(dispatch_get_main_queue(), {() -> Void in 

     self.delegate?.didTapExtendInSearchViewControllerWithIndex(self.filtered[indexPath.row][0], inTrending: self) 

    }) 
} 

Тогда:

class SearchViewController : UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, SearchTableDelegateProtocol { 

var resultSearchController = UISearchController() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let locationSearchTable = storyboard!.instantiateViewControllerWithIdentifier("SearchTable") as! SearchTable 
    resultSearchController = UISearchController(searchResultsController: locationSearchTable) 
    resultSearchController.searchResultsUpdater = locationSearchTable 

    locationSearchTable.delegate = self 
} 

... 


func didTapExtendInPhotoCollectionViewCellWithIndex(index: Int, inTrendingCell: CollectionCellOne) { 
    print (index) 
    self.performSegueWithIdentifier("hashtag", sender: "Instagram") 

    } 
} 

Спасибо всем!

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