Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios prepareforsegue vs performwithsegue if语句。_Ios_Swift - Fatal编程技术网

Ios prepareforsegue vs performwithsegue if语句。

Ios prepareforsegue vs performwithsegue if语句。,ios,swift,Ios,Swift,假设我有一个表视图,我将如何创建代码,让一个单元格转到一个视图控制器,然后让另一个单元格转到第二个视图控制器。特别是准备segue并使用segue if语句执行。您的父视图控制器(表视图所在的位置)应该具有UITableViewDelegate方法 您需要创建自己的以下实现: 在那里(当一个单元格被按下时会被调用),你会想要调用它 传递到didSelectRowAtIndexPath的参数之一是索引路径行,因此您可以知道用户按下了哪一行。您可以在performsguewithidentifi

假设我有一个表视图,我将如何创建代码,让一个单元格转到一个视图控制器,然后让另一个单元格转到第二个视图控制器。特别是准备segue并使用segue if语句执行。

您的父视图控制器(表视图所在的位置)应该具有UITableViewDelegate方法

您需要创建自己的以下实现:

在那里(当一个单元格被按下时会被调用),你会想要调用它

传递到didSelectRowAtIndexPath的参数之一是索引路径行,因此您可以知道用户按下了哪一行。您可以在performsguewithidentifier方法的“
sender
”参数中传递该单元格(或信息,或单元格从中绘制其内容的对象)

您可以从方法中的父视图直接访问子视图控制器。因此,您可以执行以下操作:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if (segue.identifier == "Load View") {
        // pass data to next view

        let cellData = sender as YourDataObject

        let childViewController = segue.destinationViewController as YourChildViewController

        // and now you can directly set whatever custom fields / bits
        // you need to set in your destination view controller
    }
}

到目前为止有意义吗?

请向我们展示您的尝试。我之所以这么问,主要是因为我不确定如何开始。可选功能的用途是什么?我不能直接在表视图控制器中实现代码吗?我理解prepare for segue的if语句,但是如何使用perform with segue实现它呢?表视图控制器是常规视图控制器的子类。当调用“
performWithSegue
”时,
prepareForSegue
是您直接将信息从您的传递到segue的机会,因此如果我不需要将任何信息传递到以下视图控制器,我是否需要使用prepareForSegue功能?@JonGardocki,no,如果不需要将任何数据传递给目标视图控制器,则不需要实现prepareForSegue。