假设我目前在 BaseViewController
上。我可以从另外 2 个 View Controller (例如 A 和 B)访问这个 View Controller 类。那么,当我弹出 BaseViewController 时,如何检查 A 或 B 是否存在于堆栈顶部?下面是我的代码(在 BaseViewController
内):
func goToAOrBViewController {
// If after popping viewController is A do this
navigationController.popViewController(animated: true)
// Id after popping viewController is B do this
// Instantiate B and push it
}
最佳答案
有很多方法可以做到这一点
第一个也是最简单的方法
func visibleViewController() -> UIViewController? {
let appDelegate = UIApplication.shared.delegate
if let window = appDelegate!.window {
return window?.visibleViewController
}
return nil
}
func goToAOrBViewController {
// If after popping viewController is A do this
navigationController.popViewController(animated: true)
if visibleViewController() == viewControllerA{
//Do stuff for A
}else{
//Do stuff for B
}
}
第二种明显的方法
let topController = UIApplication.sharedApplication().keyWindow?.rootViewController
if topController == viewControllerA {
//Do stuff for A
}else{
//Do stuff for B
}
关于swift - 弹出 ViewController 后如何检查堆栈顶部的 ViewController 是否是特定的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58162067/