我有一个应用程序,可以在执行任务之前提示用户获取各种信息。用户将所有信息放入所有信息后,我将进行UIApplication.shared.openUrl(url: url)
,然后进行self.navigationController?.popToRootViewController(animated: true)
。该应用程序弹出回根视图控制器;但是,现在来自最后一个视图控制器的导航项目提示中包含在根视图控制器的导航项目中。
有人了解为什么会发生这种情况,这是解决问题的好方法?当根视图控制器重新出现时,我可以将提示设置为""
,但我想解决问题,而不是减轻症状。
update
per @shad的答案,我已使用下面的代码更新了视图控制器,一切都按预期工作。
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationItem.prompt = nil
}
原因是您的提示被添加到窗口中,甚至可见提示的parent view-controller添加,目前不可见。如果您共享一些代码,我们可以继续详细信息。
但是,在返回rootviewController之前,有一种方法可以解散提示。您可以使用-(void) viewWillDisappear:(BOOL)animated
来删除提示。只需通过在 -(void) viewWillDisappear:(BOOL)animated
上调用 removeFromSuperview()
从父级查看器中删除提示。假设您的提示是Uiview。