在 iphone 上的 3 个视图控制器之间切换

Posted

技术标签:

【中文标题】在 iphone 上的 3 个视图控制器之间切换【英文标题】:flipping between 3 view controllers on iphone 【发布时间】:2010-02-17 16:00:04 【问题描述】:

我有 3 个视图控制器。首先显示主视图(控制器 1 的视图)。根据按钮选择,显示第二个视图(控制器 2 的视图)。此视图上有几个按钮和一个主页按钮。选择这些将显示带有动画的第三个视图(控制器 3 的视图)。选择主页按钮将显示主视图(控制器 1 的视图)。我遇到的问题是,当我按下控制器 2 视图上的按钮以显示控制器 3 的视图时,在动画期间我在后台看到控制器 1 的视图。我怎样才能摆脱它?

【问题讨论】:

如何显示视图控制器?你用 UINavigationController 还是别的什么? 不,我不使用 UINavigationController 在应用程序的委托中我添加 [window addSubview: viewController1.view] 然后在每个控制器的实现文件中,我从 NIB 实例化下一个视图控制器并将其添加为子视图。 【参考方案1】:

听起来您可能想使用presentModalViewController。这可能不会解决您在动画期间 view1 可见的其他问题。我会尝试设置 hidden 属性以用于 view1。

【讨论】:

【参考方案2】:

您可以在动画序列之前从父视图中删除控制器 1 的视图。作为从控制器 1 到控制器 2 过渡的一部分,您应该这样做。

[controller1.view removeFromSuperView];

当然,您需要在某个时候重新添加它。

【讨论】:

我必须在第二个控制器的文件中有这行代码。我如何记住第一个控制器?我应该将它作为参数传递吗?我不知道该怎么做。 你在使用 UIView 动画块吗?如果是这样,它应该是该块的一部分。这意味着 in 将在第一个控制器中,或按钮按下的操作方法中。

以上是关于在 iphone 上的 3 个视图控制器之间切换的主要内容,如果未能解决你的问题,请参考以下文章

对于 Iphone,如何从当前加载的视图中引用根视图控制器,以便可以替换/切换视图

iphone sdk:如何正确切换控制器

使用工具栏及其按钮在不同的“子”视图控制器之间切换

在视图控制器之间切换时保留按钮状态

在 iPhone 中,我如何知道在使用正向地理编码时我的所有地图注释何时加载?

iPhone如何显示不同的视图控制器以响应设备旋转?