【发布时间】:2020-05-30 05:05:51
【问题描述】:
当呈现的视图控制器是由 tabbarController 的子级呈现的 UIViewController 时,展开 segue 关闭两个视图控制器。 这是结构:
tabBarController (root) -> child(first tab) -> MiddleViewController -> TopViewController
当我从 TopViewController 执行 segue(unwind) 时,它会被解散并解散 MiddleViewController。会不会是因为middleViewController的presentingViewController是tabBarController的子?带segue参数的函数确实在MiddleViewController里面。会有什么问题?
TopViewController 展示风格为.OverCurrentContext
【问题讨论】:
-
不清楚。如果 MiddleViewController 是选项卡栏控制器的子级,则不能“关闭”它,因为它从未出现过。实际发生了什么?是不是一切都变黑了?如果是这样,您是否切换到其他选项卡并返回?如果是这样,那是一个众所周知的错误;当标签呈现另一个视图控制器时,您不能让用户切换标签。
-
实际上,tabbarController 的一个子节点展示了 MiddleViewController。当从 topViewController 执行 unwind segue 时,顶部和中间的 ViewController 都被解除,我再次回到第一个选项卡。
-
那么你错误地连接了 unwind segue。如果你做对了,你就会回到你想回到的地方。中间视图控制器不会自动关闭。
-
你有没有想过这个问题?我看到相同的行为并认为这是 iOS 中的错误?
标签: swift uiviewcontroller swift5