【发布时间】:2018-06-08 16:50:30
【问题描述】:
我有一个设置了 4 个 viewControllers 的 UITabBarController。
其中一个控制器有一个按钮,显示另一个控制器(包装在 UINavigationController 上),设置如下:
self.definesPresentationContext = true
navController.modalPresentationStyle = .overCurrentContext
navController.modalTransitionStyle = .crossDissolve
self.present(navController, animated: true)
到目前为止一切正常。
现在,如果我切换到另一个选项卡(在前一个模式打开的情况下),然后再次返回到显示模式的选项卡(屏幕仍然在那里,没关系)。然后,如果我关闭模态(从按钮),模态被关闭但控制器视图已经消失(白色),然后如果我切换到另一个选项卡并再次返回选项卡,视图加载正确。
注意:对于这种情况,我需要overCurrentContext,不想阻塞UITabBarController(使用fullScreen)。也可以尝试使用.currentContext,custom
【问题讨论】:
-
我相信这是一个众所周知的错误。
-
@matt 实际上正在阅读您的书(我把它当作 coobook :) 并等待您的回答).. 感谢您的评论。有什么想法吗?
-
如果是同样的错误,我会给出我的解决方法,即防止用户这样做——即用户无法在模式打开时切换到另一个选项卡。见github.com/mattneub/Programming-iOS-Book-Examples/blob/master/…
-
@matt 选择你的答案是正确的,因为提到这是一个已知的错误。在我的情况下,我不能强制 TabBar(由于 UX)切换。作为一种解决方法,我执行了以下操作:当 Tab 切换并且 modalPresentationStyle 为 .overCurrentContext 时关闭呈现的控制器。
-
这也很好,很明显!同样有效。您可以将其作为替代答案,作为记录。
标签: ios swift uiviewcontroller uimodalpresentationstyle