在具有多个页面的UITableViewController和ContentViewController之间交换date

我正在处理一个应用程序,我需要从我的tableviewcontroller,这是初始视图控制器中的tableview单元格点击值的数组传递到内容视图控制器与页面curl转换。

每个页面都将有一个文本视图,该视图将被初始视图控制器传递的值填充,并且可以由用户编辑。

我的问题是,我无法用新的值更新数组,并将其传回到初始视图控制器

我尝试了以下内容:

  1. 我在我的初始视图控制器中实现了pageviewcontroller方法来创build带有页面curl转换的ContentViewController的实例,并且能够在页面curl完成时将值传递给每个页面。 但我试图找出一种方法来将更新后的值传递给我实例化对象的tableviewcontroller。

  2. 我尝试从tableview segue到contentViewcontroller,但它不工作。

感谢有人能帮助我。

使用委托模式。

ContentViewController定义一个协议:

 protocol UpdateModelDelegate { func didDismissContentViewController(controller:ContentViewController) } 

ContentViewControllerbuild立一个委托variables:

 var delegate: UpdateModelDelegate? 

当你closuresContentViewController调用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. }