如何避免在导航堆栈中出现委托调用的痕迹?
How to avoid a trail of delegate calls in a navigation stack?
我在视图 A 上有搜索结果。我在搜索结果上有过滤器选项。当用户点击过滤器视图 A 时,他将转到列出所有过滤器选项的视图 B。单击 B 上的过滤器会将用户带到视图 C,其中显示每个过滤器的选择。当用户在视图 C 上选择过滤器时,我想将其传递回 A,以便当用户返回视图 A 时,在选择过滤器后,应用所选过滤器后更新 A 上的结果数据。
如何以任何其他最简单的方式做到这一点?
方法有很多种。我会分享最简单的。创建一个模态结构,从视图控制器 C 更新它的值,然后在 A 中使用它。
struct StudentData {
static var name = ""
static var address = ""
}
在视图控制器 C 中,更新值
StudentData.name = "your name"
StudentData.address = "your address"
在视图控制器 A 中,
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
nameField.text = StudentData.name
addressField.text = StudentData.address
}
我在视图 A 上有搜索结果。我在搜索结果上有过滤器选项。当用户点击过滤器视图 A 时,他将转到列出所有过滤器选项的视图 B。单击 B 上的过滤器会将用户带到视图 C,其中显示每个过滤器的选择。当用户在视图 C 上选择过滤器时,我想将其传递回 A,以便当用户返回视图 A 时,在选择过滤器后,应用所选过滤器后更新 A 上的结果数据。
如何以任何其他最简单的方式做到这一点?
方法有很多种。我会分享最简单的。创建一个模态结构,从视图控制器 C 更新它的值,然后在 A 中使用它。
struct StudentData {
static var name = ""
static var address = ""
}
在视图控制器 C 中,更新值
StudentData.name = "your name"
StudentData.address = "your address"
在视图控制器 A 中,
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
nameField.text = StudentData.name
addressField.text = StudentData.address
}