【发布时间】:2015-10-09 01:41:27
【问题描述】:
我无法找到一种方法来区分从导航控制器堆栈弹出和从 UITabBarController 进入视图控制器。
我只想在视图从 TabBar 呈现时调用 ViewWillAppear 中的方法,而不是当有人在导航控制器中按回时调用。
如果我不使用 TabBarController,我可以使用 viewDidLoad 轻松获得此功能。
我试过了,
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
println("View Will Appear")
if isBeingPresented() {
println("BP")
}
if isMovingFromParentViewController() {
println("from")
}
if isMovingToParentViewController() {
println("to")
}
}
但是当我按下 Tab 按钮或按下返回按钮时没有区别。
只有“视图会出现”被调用。
使用 iOS 8.4 / Swift
【问题讨论】:
-
您是否尝试添加一些观察者并使用 NSNotificationCenter ?
-
没想到 - 会考虑
-
您的 ViewController 堆栈看起来如何?您的视图控制器是否始终包含在导航控制器中(作为根视图控制器或推送视图控制器)?
-
是的,UITabBarController,4 个选项卡,每个选项卡都包含 UINavControllers(具有向下钻取的 UITableViewControllers)
标签: ios swift uinavigationcontroller uitabbarcontroller viewwillappear