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;