Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.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 更改其他视图控制器Swift的变量_Ios_Swift - Fatal编程技术网

Ios 更改其他视图控制器Swift的变量

Ios 更改其他视图控制器Swift的变量,ios,swift,Ios,Swift,我有一个模态序列到一个具有表视图的视图控制器 当用户在该表视图中选择一个单元格时,我希望取消视图控制器,并在显示视图控制器中,将变量更改为所选单元格的内容 如何以编程方式更改另一个视图控制器中的变量?(不使用prepareForSegue方法,因为我不是在执行segue,而是在解除视图控制器)这听起来有点奇怪(从表视图中选择通常会在导航中向前移动),但您可以这样做。只需创建一个名为CellSelectNotification的协议,它需要一个识别所选单元格的方法(可能需要一个indexPath,

我有一个模态序列到一个具有表视图的视图控制器

当用户在该表视图中选择一个单元格时,我希望取消视图控制器,并在显示视图控制器中,将变量更改为所选单元格的内容


如何以编程方式更改另一个视图控制器中的变量?(不使用prepareForSegue方法,因为我不是在执行segue,而是在解除视图控制器)

这听起来有点奇怪(从表视图中选择通常会在导航中向前移动),但您可以这样做。只需创建一个名为
CellSelectNotification
的协议,它需要一个识别所选单元格的方法(可能需要一个indexPath,以保持实现简单)。您使父视图控制器符合该协议,并以CellSelectNotification委托的形式向表示该表视图的视图控制器提供对其父视图的引用。当表格视图选择了一个单元格时,您可以通过定义的委托方法通知父级选定的索引路径,然后允许解除视图控制器

这是允许通常不应该相互引用的对象进行通信的一般方法-委托模式表示“我需要处理一些情况,处理是
委托给接收者的
,实现对调用方不重要”


另一种方法是通过或通过,但在这种情况下,后两种方法对于简单的通知来说有点重要。

如果我理解正确,为什么不尝试委派?