如何参考上一个视图控制器。我想使用if语句,如下所示:
if previousViewController = searchController {
//preform a method
}else if previousViewController = notificationController {
//preform another method
}
但是如何引用上一个视图控制器?因此,例如,如果我单击视图控制器A上的一个按钮,让我查看控制器B,我想以某种方式获得对视图控制器A的引用。我已经查看了类似的问题,但我似乎无法找到一个足以帮助我的答案。提前致谢
答案 0 :(得分:1)
我首选的方法是向ViewControllerB
添加一个属性以显示它的用法。例如......
class MyViewController: UIViewController {
enum Mode {
case search, notify
}
var mode = Mode.search
override viewDidLoad() {
super.viewDidLoad() {
configure()
}
}
func configure() {
switch mode {
case .search:
// configure for search results
case .notify:
// configure for notification
}
}
}
然后在呈现视图控制器中:
class SearchViewController: UIViewController {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let mvc = segue.destination as? MyViewController {
mvc.mode = .search
}
}
}
或设置mvc.mode = .notify
,如果从NotificationViewController
使用此方法,MyViewController
并不需要知道如何或通过它呈现的内容。您可以将其推送到导航堆栈,或将SearchViewController
更改为DownloadViewController
,这不重要。