Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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 通过对象将数据从父视图控制器传递到子UITableViewController_Ios_Swift - Fatal编程技术网

Ios 通过对象将数据从父视图控制器传递到子UITableViewController

Ios 通过对象将数据从父视图控制器传递到子UITableViewController,ios,swift,Ios,Swift,我有几个代表已经在我的代码中工作了(不是问如何使用他们)。从父视图控制器(详细信息在序列图像板中属于类InputViewController)到子TableViewController(AddressTableViewController)获取数据时遇到问题,因为我无法从此类引用父控制器 TableViewController和地图都位于InputViewController中。我想将数据(locationManager中的反向地理定位地址)从地图发送到AddressTableViewContr

我有几个代表已经在我的代码中工作了(不是问如何使用他们)。从父视图控制器(
详细信息
在序列图像板中属于类
InputViewController
)到子TableViewController(
AddressTableViewController
)获取数据时遇到问题,因为我无法从此类引用父控制器

TableViewController和地图都位于
InputViewController
中。我想将数据(locationManager中的反向地理定位地址)从地图发送到
AddressTableViewController
,以填充单元格文本。TableViewController通过对象(在对象库中选择)绑定到
InputViewController
(主控制器)

代码:

您将看到我正在尝试使用
InputViewController
底部的协议: 但我无法使用它,因为我无法访问
InputViewController
,因此
mapAddressDataSource
始终为
nil
。我已经尝试在
AddressTableViewController
init()
中创建它的一个实例,并创建了一个IBOutlet,但没有任何运气

从父视图控制器(故事板中的更多信息属于类InputViewController)到子TableViewController(AddressTableViewController)获取数据时遇到问题,因为我无法从此类引用父控制器。

为什么不呢

为您的
InputViewController
AddressTableViewController
上创建一个属性,但将其创建为弱属性,您可以访问它而不会造成任何问题(保留周期)

e、 g


然后,您应该能够从tableView子类中访问self.parentInputViewController上的任何数据。

谁实现了委托MapAddressDataSource(您应该将其重命名为MapAddressDelegate)。不清楚您是否正确使用了“父”和“子”这两个词。您是否向InputViewController添加了容器视图(或2),并且表视图控制器是嵌入式控制器?它看起来更像是一个带有映射视图的控制器和两个作为子视图的表视图。很抱歉,名称有点混淆。故事板类中的更多信息控制器是
InputViewController
,是的,两个表视图都在其中,但我通过一个对象将它们的
dataSource
委托给它们自己的tableviewcontroller。所以我想澄清一下:对象是视图控制器的子对象,而不是tableViewController本身。表视图本身也是控制器的子级。另外,请确保您在父控制器内:tableView.parentInputViewController=self。这很有效,谢谢。我已经试过了,不确定你是否能做到,但我把它命名为
inputViewController
,它干扰了另一个属性,尽管我还没有一个属性命名为它?我收到错误
无法用弱属性覆盖强属性
@property (weak, nonatomic) InputViewController *parentInputViewcontroller;