如何在不使用Seque的情况下呈现ViewController

时间:2016-05-08 08:39:28

标签: ios swift

我想从tableView中搜索并点击单元格后显示一个collectionView。

我创建了一个searchController,它也是一个tableViewController并实现了updateSearchResultsForSearchController(),它运行良好并显示我想要的结果。

由于storyboard没有searchController,我无法在searchController和collectionViewController之间创建一个segue。我试过的是

//PostListId is the storyboard id of postList(collectionview here)
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    // Choose the viewController I wanna display
    let postList = storyboard?.instantiateViewControllerWithIdentifier("PostListId") as! PostListController
    // Send data to collectionView 
    postList.key = 1
    // PresentViewController
    self.presentViewController(postList, animated: true, completion: nil)
}

但是当我在搜索后点击单元格时,我在这里收到错误,没有错误消息反馈,为什么?

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

let postCtrl = PostListController() //create instance of your controller 
postCtrl.key = 1
let navigationController = UINavigationController(rootViewController: postCtrl) //create navigation controller if you want
pushViewController(navigationController, animated: true) //display

如果您愿意,可以将控制器显示为模态:

presentViewController(postCtrl, animated: true, completion: nil)

答案 1 :(得分:0)

截至目前,您的代码看起来很好。确保设置故事板ID:

image