gpt4 book ai didi

ios - 具有多个页面的 UITableViewController 和 ContentViewController 之间的交换日期

转载 作者:搜寻专家 更新时间:2023-10-31 23:01:24 24 4
gpt4 key购买 nike

我正在开发一个应用程序,在该应用程序中,我需要将一组值从我的 tableviewcontroller 中的 tableview 单元格(初始 View Controller )传递到具有页面 curl 过渡的 contentview View Controller 。

每个页面都会有一个 TextView ,它将填充从初始 View Controller 传递的值,并且可以由用户编辑。

我的问题是,我无法使用新值更新数组并将其传递回初始 View Controller

我尝试了以下方法:

  1. 我在我的 initialview Controller 中实现了 pageviewcontroller 方法来创建具有页面 curl 过渡的 ContentViewController 实例,并且能够在页面 curl 完成时将值传递给每个页面。但是我试图找出一种方法将更新后的值从我实例化对象的地方传回给 tableviewcontroller。

  2. 我尝试了从 tableview 到 contentViewcontroller 的 Segue,但它不起作用。

如果有人能帮助我,我将不胜感激。

最佳答案

使用委托(delegate)模式。

ContentViewController 中定义一个协议(protocol):

protocol UpdateModelDelegate {
func didDismissContentViewController(controller:ContentViewController)
}

ContentViewController 中建立一个委托(delegate)变量:

var delegate: UpdateModelDelegate?

当您关闭 ContentViewController 时,调用 delegate?.didDismissContentViewController(self) 会将数据发送回您的 UITableViewController

UITableViewController 符合这个协议(protocol)。

class MyTableViewControllerSubclass: UITableviewController, UpdateModelDelegate

当呈现 ContentViewController 时,将您的 UITableViewSubclass 设置为委托(delegate)。

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var contentViewController: ContentViewController()
//After you pass the necessary data to contentViewController...
contentViewController.delegate? = self
}

最后,在您的 UITableviewController 子类中实现委托(delegate)函数。

func didDismissContentViewController(controller:ContentViewController) {
//You're passed in the contentViewController here, use relevant data to update your model.
}

关于ios - 具有多个页面的 UITableViewController 和 ContentViewController 之间的交换日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34295778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com