1

我在故事板(在 xcode 中)中有一个 iPad 应用程序,带有几个单独的视图控制器。我必须使用模态segues设置它们以在彼此之间进行转换。我想知道在执行 segue 后处理关闭视图控制器的最佳方法是什么。成功转场后是否应该关闭前一个视图控制器?如果是这样,哪种方式是最佳的?

4

1 回答 1

2

如果基本视图控制器 A 将视图控制器 B 呈现为模态,然后您需要模态 C 出现,则应在呈现 C 之前关闭模态 B。这假设模态 B 中的任务不依赖于 C 中用户操作的结果

您可以通过以下方式在解除 B 和呈现 C 之间实现平滑过渡:

// instantly dismiss B (or whichever is showing)
[self dismissModalViewControllerAnimated:NO];
// show the other modal with your existing segue
[self performseguewithidentifier@"c_segue"];

从 UI 设计的角度来看,模式用于用户在另一个视图控制器(在您的情况下为 A)上执行任务时必须处理的中断/交互。如果模态 B 中的交互需要另一个这样的中断(意味着 B 必须将 C 呈现为模态),那么是时候看看你的 UI 设计,看看你正在做的是否是最好的方法。

如果您实际上是在视图之间移动(您不再需要 A),那么模态绝对是错误的选择。你可能想要做一个替换序列,或者查看一个 ContainerView 来管理换出视图控制器。

于 2013-03-14T15:35:05.460 回答