0

我有我的UISearchController在一個單獨的UITableViewController(TableSearch)的結果。通過另一個viewController顯示一個viewController,Swift

我想,當我們選擇一行時,用navBar和tabBar顯示DetailViewController,並有返回按鈕導致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沒有導航欄和使用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,animated:true)和self.navigationController?.pushViewController(viewController,animated:true)。沒有任何反應.. SearchTable沒有鏈接到導航控制器.. –

+0

您將不得不先彈出searchTable,或者爲新的ViewController再次創建navBar/tabBar,或者爲了繼承navBar/tabBar而推送searchTable – Daniel

回答

0

使用 self.navigationController .pushViewController(的viewController,動畫:真)?

+0

我試過vc.navigationController ?.pushViewController(viewController,animated:true)和self.navigationController?.pushViewController(viewController,animated:true)。沒有反應.. SearchTable沒有鏈接到一個導航控制器.. –

+0

你想從搜索視圖控制器去搜索表和搜索表沒有顯示頂部的導航欄..右...? –

+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") 

    } 
} 

謝謝大家!

相關問題