展开委托不取消"中间"视图



我有一个导航控制器(NC)和三个具有以下导航模式的视图控制器(A,B,C):

NC->A->B->C

如果我从 A 转到 C 并">返回"B 和 C deinit 方法都会被调用。

如果我使用UnwindSegue 从 C 转到 A,则不会调用 B deinit。

不清楚为什么 - 我的应用程序中还有另一个类似的序列,无论"返回"或"展开"操作如何,都会调用 deinit。

知道什么会导致 B 在放松操作后"活着"吗?

发现问题。问题是我在视图中看到的这一行DidLoad:

definesPresentationContext = true

从文档中: 确定应为类型为 UIModalPresentationCurrentContext 的演示文稿显示哪个父视图控制器的视图。 如果没有祖先视图控制器设置此标志,则表示器将是根视图控制器。

结果,中间视图(即"B")成为根,除非它被"后退"操作消除。

为了避免搜索框在视图 C 上仍然可见一瞬间,我在从用户选择中获取所选值(点击行)后,在视图 B 的 prepareForSegue 中添加了searchController.active = false

相关内容

  • 没有找到相关文章

最新更新