我正在开发一个应用程序,我需要从tableviewcontroller中的tableview单元格中传递一个值数组,这是一个具有页面卷曲转换的contentview视图控制器的初始视图控制器。
每个页面都有一个textview,其中将填充从初始视图控制器传递的值,并且可以由用户编辑。
我的问题是,我无法使用新值更新数组并将其传递回初始视图控制器
我尝试了以下内容:
我在我的initialview控制器中实现了pageviewcontroller方法,以创建具有页面卷曲转换的ContentViewController实例,并且能够在页面卷曲完成时将值传递给每个页面。但我试图找出一种方法将更新后的值传递回tableviewcontroller,我实例化了该对象。
我从tableview尝试了Segue到contentViewcontroller,但它不起作用。
感谢有人可以帮助我。
答案 0 :(得分:1)
使用委托模式。
在ContentViewController
中定义协议:
protocol UpdateModelDelegate {
func didDismissContentViewController(controller:ContentViewController)
}
在ContentViewController
:
var delegate: UpdateModelDelegate?
当您解除ContentViewController
来电delegate?.didDismissContentViewController(self)
时,会将数据发送回UITableViewController
。
让UITableViewController
符合此协议。
class MyTableViewControllerSubclass: UITableviewController, UpdateModelDelegate
在展示ContentViewController
时,将UITableViewSubclass
设为代表。
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var contentViewController: ContentViewController()
//After you pass the necessary data to contentViewController...
contentViewController.delegate? = self
}
最后,在UITableviewController
子类中实现委托函数。
func didDismissContentViewController(controller:ContentViewController) {
//You're passed in the contentViewController here, use relevant data to update your model.
}