【发布时间】:2017-01-26 23:47:59
【问题描述】:
所以我有一个普通的UINavigationController,它的rootViewController 在情节提要中设置。每当我更换导航控制器时(不要问为什么,但我的应用程序中的某些转换需要用新控制器替换整个堆栈)使用
var newController: UIViewController!
// newController is initiated at some point
...
if let navigationController = self.navigationController {
navigationController.setViewControllers([newController])
}
我可以直观地看到转换发生了,但是 viewWillDisappear 或 viewDidDisappear 方法都没有被调用。当我随后替换导航控制器堆栈时,它们被按预期调用。阻止它们被调用的根有什么特别之处吗?
【问题讨论】:
-
我认为这是因为当您切换根控制器时视图实际上并没有消失。尝试在您要删除的视图上调用
dismiss(animated: false)。 -
Dismiss 不是指以模态方式呈现的视图吗?
标签: swift uiviewcontroller uinavigationcontroller tvos