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

时间:2016-05-03 11:36:02

标签: ios iphone swift uitableview

我有一个表视图控制器,通过单击单元格我将用户重定向到详细视图控制器。但是当我执行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) 
    }

我在下面尝试了这个:

 self.navigationController?.pushViewController(vc, animated: true)

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

4 个答案:

答案 0 :(得分:9)

首先,您的UITableViewController必须有UINavigationController

要快速将其从xCode菜单

嵌入到您的表中

enter image description here

然后,您必须创建segue,从UITableViewController按住Ctrl键拖动到目标viewController:

enter image description here

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

enter image description here

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

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

    performSegueWithIdentifier("mySegue", sender: cell)
}

答案 1 :(得分:3)

如果您没有使用UINavigationController,请在segue中将storyboard从表格单元格添加到目标viewController,并将identifier提供给segue }。

然后在单元格上单击调用

- performSegueWithIdentifier:sender:

并实施

- prepareForSegue:sender:

答案 2 :(得分:0)

如果没有导航控制器,则无法推动控制器。您的self.navigationController媒体资源为nil(您可以查看)

如何解决?

答:您需要通过代码或故事板

将视图控制器嵌入导航控制器中

答案 3 :(得分:0)

试试这段代码,它为我工作,

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){

            let storyboard = UIStoryboard(name: "Main", bundle: nil)

            let controller = storyboard.instantiateViewControllerWithIdentifier("PlayViewController") as! PlayViewController

            self.navigationController?.pushViewController(controller, animated: true)
        }

并设置故事板ID,如下所示,

enter image description here

希望它有用