我在故事板(在xcode中)有一个iPad应用程序,带有几个独立的视图控制器。我必须让它们使用模态segue进行设置以在彼此之间进行转换。我想知道在执行segue之后处理dimissing viewcontrollers的最佳方法是什么。成功segue后你应该解雇以前的视图控制器吗?如果是这样,哪种方式最佳?
答案 0 :(得分: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),那么模态肯定是错误的选择。您可能希望执行替换 seque,或者查看ContainerView以管理交换视图控制器。