【问题标题】:Switching between two views in a UIviewController在 UIviewController 中的两个视图之间切换
【发布时间】:2012-10-15 17:39:09
【问题描述】:

实现的解决方案在 IOS4 中运行良好,但现在在 IOS6 中它拒绝显示分配的视图(我只看到屏幕上的窗口)。

我有一个名为 MainController 的 ViewController。它有两个 UIView 类型的 IBOutlets。一种称为 PortraitView,一种称为 LandscapeView。

在 MainController viewWillAppear 中,我将视图指定为 PortraitView。

self.view = portraitView;

然后方向发生变化,我将视图指定为 LandscapeView。

我的问题是,在将它们分配给 viewControllers 视图后,似乎没有一个视图出现。如前所述,这在以前的 IOS 版本中运行良好。

我已经仔细检查了视图位置没有改变,并且 alpha 和 hidden 属性是正确的。出口也绑定到 xib 对象。

有人知道可能是什么问题吗?补充一点,我的 xib 文件不是围绕故事板构建的,而是围绕“旧”ibuilder 设置构建的。

【问题讨论】:

    标签: ios uiview uiviewcontroller ios6


    【解决方案1】:

    来自 UIViewController 文档:

    shouldAutorotateToInterfaceOrientation:
    Returns a Boolean value indicating whether the view controller supports the specified orientation. (Deprecated in iOS 6.0. Override the supportedInterfaceOrientations and preferredInterfaceOrientationForPresentation methods instead.)
    

    如果您使用 shouldAutorotateToInterfaceOrientation 来了解旋转发生的时间,您可能需要阅读 iOS6 现在自动旋转的工作方式。

    【讨论】:

    • 问题不是让视图在视图之间切换,而是让视图显示出来。
    【解决方案2】:

    我认为 viewWillAppear 在设置视图的过程中可能为时已晚。尝试在控制器的 init 方法或 viewDidLoad 中执行此操作,看看是否有效。

    但是,您可能需要查看 Apple 文档中视图控制器编程指南中的“创建备用景观界面”部分,了解另一种方法。

    【讨论】:

    • 我不认为设置视图的时机是问题所在。我曾经在不同的情况下(按钮事件等)替换视图控制器视图运行时。然而,我确实尝试在 viewdidload 和 awakefrom nib 中设置 viewControllers 视图。没变。我还尝试只保留 nib 文件中的视图并使用 [self.view addSubView:portraitView]。即使我这样做,视图也不会出现。
    • 您是否记录了 PortraitView 以确保它不为零?
    • 是的。它不是零,我可以向它添加子视图。但它们也没有显示。
    • @Øystein,如果没有看到一些代码,我想不出你的问题是什么。你是如何从 xib 文件中加载视图的?
    • 是的,显示代码并不容易,因为它包含在代码和 xib 文件中,并且还包含数百行代码。视图是通过一个 UIViewController 类 MainController 加载的。 MainController 设置为 UINavigationController 中的第一个视图。然后导航控制器再次设置为应用程序窗口的根控制器。我想我会尝试从头开始构建这个设置,让 xcode 生成一个新的 xib 文件,因为原始文件可以追溯到 IOS3。可能是文件中的一些怪癖会破坏视图..
    【解决方案3】:

    我现在有点尴尬。原来我忘了@syntezise 我的观点。这导致视图自动释放并且没有显示在我的主控制器中。

    我不知道为什么它在 IOS6 之前有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多