如何将segue从表格视图中的单击单击推送到另一个视图控制器

use*_*630 3 iphone uitableview ios swift

我有一个表视图控制器,通过单击单元格我将用户重定向到详细视图控制器.但是,当我执行segue"当前视图控制器"其工作正常.但我需要的是什么?

我需要通过单击表格视图单元格来执行push segue.如何做到这一点?

这是我的代码:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
        let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let vc: BusinessDetailViewController = storyboard.instantiateViewControllerWithIdentifier("BusinessDetailViewController") as! BusinessDetailViewController
        vc.BusinessData = arrDict[indexPath.row]
        self.presentViewController(vc, animated: true, completion: nil) 
    }
Run Code Online (Sandbox Code Playgroud)

我试过以下这行:

 self.navigationController?.pushViewController(vc, animated: true)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.任何解决方案请!!

Ale*_*ano 9

首先,你UITableViewController必须有一个UINavigationController

要快速将其从xCode菜单嵌入到您的表中

在此输入图像描述:

然后,您必须创建segue,ctrl-drag从UITableViewController目标viewController:

在此输入图像描述

然后选择segue并在属性检查器中为其指定标识符:

在此输入图像描述

现在您可以在代码中执行此segue:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let cell = tableView.cellForRowAtIndexPath(indexPath)
    tableView.deselectRowAtIndexPath(indexPath, animated: true)

    performSegueWithIdentifier("mySegue", sender: cell)
}
Run Code Online (Sandbox Code Playgroud)