通过Object将数据从父ViewController传递到子UITableViewController

时间:2015-05-28 03:24:40

标签: ios swift

我有几个代表已经在我的代码中工作(不询问如何使用它们)。我在将父ViewController(故事板中的More Information属于类InputViewController)中的数据传递给子TableViewController(AddressTableViewController)时遇到问题,因为我无法引用父级这个类的控制器。

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

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

你会看到我正在尝试使用InputViewController底部的协议: https://gist.github.com/damionjn/c148a07a39b5c27e7f78#file-gistfile1-swift-L125 但我无法使用它,因为我无法访问InputViewController,因此mapAddressDataSource始终为nil。我尝试在AddressTableViewController的{​​{1}}中创建一个实例并创建一个没有任何运气的IBOutlet。

enter image description here

1 个答案:

答案 0 :(得分:1)

  

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

为什么不呢?

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

e.g。

@property (weak, nonatomic) InputViewController *parentInputViewcontroller;

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