【发布时间】:2013-01-20 06:39:13
【问题描述】:
这个问题很长,请耐心等待。
我们知道有两种显示控制器的方法:推送或呈现。还有两个复合控制器:tabbarcontroller 和导航控制器。有了这些可以制作复杂的视图控制器树。 现在我有一个像这样的复杂视图控制器树。
T: 标签栏控制器 N:导航控制器 V:普通视图控制器 P:推 S:在场
所以PV2就是push一个viewcontroller,这是六种组合,但是禁止PN,不能push一个navigation controller。在我研究的时候
T1 --------------------- N1 N2 N3 | | PV1 PV3 | PV2现在当前的视图控制器是 V2。我想跳到N3并推V3。 我写了这段代码:
[self.navigationcontroller popToRootViewControllerAnimated:NO]; // No is important
tabbarcontroller.selectIndex = 2;
[N3 pushViewController:V3];
它有效,但仍然很糟糕,太糟糕了。 1:N3必须知道v3,viewcontroller之间的耦合性很强。 2:不能在复杂的情况下工作……也会导致动画问题。
我的一个朋友告诉我,他们制作了一个 PageConductor,可以轻松地在任何视图控制器之间切换。 这真的让我很困惑......
【问题讨论】:
标签: ios uiviewcontroller