要在不使用导航控制器的情况下取消推送的视图控制器,可以通过以下步骤来实现:
var pushedViewController: UIViewController?
pushedViewController
属性中。pushedViewController = YourViewController()
pushedViewController
属性设置为nil
。func cancelPush() {
pushedViewController = nil
}
viewWillAppear
方法中,检查pushedViewController
是否存在。如果存在,则推送它,并重置pushedViewController
为nil
。override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let pushedVC = pushedViewController {
navigationController?.pushViewController(pushedVC, animated: true)
pushedViewController = nil
}
}
这样,当源视图控制器出现时,如果存在要推送的视图控制器,它将被推送并重置为nil
。如果你想取消推送,只需调用cancelPush
方法即可。