【发布时间】:2016-07-30 01:42:27
【问题描述】:
【问题讨论】:
标签: swift
【问题讨论】:
标签: swift
override func viewWillDisappear(animated: Bool) {
// Do Your Lines of Code ...
}
每次按下后退按钮或完成或弹出视图时,都会调用此函数..您需要覆盖此..
【讨论】:
试试这个:
override func willMoveToParentViewController(parent: UIViewController?) {
if parent == nil {
// Back button Event handler
}
}
【讨论】:
willMove(toParentViewController:)。如果这个方法没有被调用,你的viewController在UINavigationController里面吗?它有自己的后退按钮而不是UINavigationController 提供的那个吗?
试试这个(从 manecosta 复制和粘贴)
按照另一个答案的建议将按钮替换为自定义按钮可能不是一个好主意,因为您将失去默认行为和样式。
您还有一个选择是在视图控制器上实现 viewWillDisappear 方法并检查名为 isMovingFromParentViewController 的属性。如果该属性为 true,则意味着 View Controller 正在消失,因为它正在被移除(弹出)。
应该看起来像:
override func viewWillDisappear(animated : Bool) {
super.viewWillDisappear(animated)
if (self.isMovingFromParentViewController()){
// Your code...
}
}
Here 是另一个问题的链接
【讨论】:
尝试调用它
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
if self.isMovingFromParent {
print("isMovingFromParent()") // dismiss for push viewController
}
if self.isBeingDismissed {
print("isBeingDismissed()") // dismiss for modal that doesn't has navigationController
}
if self.navigationController?.isBeingDismissed ?? false {
print("navigationController?.isBeingDismissed()") // dismiss for modal that has navigationController
}
}
【讨论】: