我有几个已经在我的代码中工作的代表(不问如何使用它们)。我无法从父级ViewController(情节提要中的故事板中的More Information属于类InputViewController)获取数据到子级TableViewController(AddressTableViewController),因为无法从此类引用父级控制器。

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

代码:https://gist.github.com/damionjn/c148a07a39b5c27e7f78

您会在这里InputViewController的底部看到我正在尝试使用该协议:
https://gist.github.com/damionjn/c148a07a39b5c27e7f78#file-gistfile1-swift-L125
但是由于无法访问InputViewController而无法使用它,因此mapAddressDataSource始终是nil。我尝试在AddressTableViewControllerinit()中创建它的实例,并创建一个没有任何运气的IBOutlet。

最佳答案

我无法从父ViewController(情节提要中的更多信息属于InputInputController类)将数据获取到子TableViewController(AddressTableViewController)时遇到问题,因为无法从此类引用父控制器。

为什么不?

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

例如

@property (weak, nonatomic) InputViewController *parentInputViewcontroller;

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

关于ios - 通过对象将数据从父级ViewController传递到子级UITableViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30496693/

10-10 16:44