在具有多个页面的UITableViewController和ContentViewController之间交换date
我正在处理一个应用程序,我需要从我的tableviewcontroller,这是初始视图控制器中的tableview单元格点击值的数组传递到内容视图控制器与页面curl转换。
每个页面都将有一个文本视图,该视图将被初始视图控制器传递的值填充,并且可以由用户编辑。
我的问题是,我无法用新的值更新数组,并将其传回到初始视图控制器
我尝试了以下内容:
-
我在我的初始视图控制器中实现了pageviewcontroller方法来创build带有页面curl转换的ContentViewController的实例,并且能够在页面curl完成时将值传递给每个页面。 但我试图找出一种方法来将更新后的值传递给我实例化对象的tableviewcontroller。
-
我尝试从tableview segue到contentViewcontroller,但它不工作。
感谢有人能帮助我。
使用委托模式。
在ContentViewController
定义一个协议:
protocol UpdateModelDelegate { func didDismissContentViewController(controller:ContentViewController) }
在ContentViewController
build立一个委托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. }