2

我正在为 iPad 构建一个使用 UISplitViewController 的通用应用程序,并且应该可以在任何 3.0 设备上运行,例如第一代 iPhone/iPod touch。问题是,尽管当应用程序在 iPhone 上运行时我实际上并没有创建任何 UISplitViewController 实例,但我仍然感到害怕

dyld: Symbol not found: _OBJC_CLASS_$_UISplitViewController
  Referenced from: /var/mobile/Applications/.....
  Expected in: /System/Library/Frameworks/UIKit.framework/UIKit

尝试在第一代 iPod touch 上运行时出现控制台错误。不过,在 iOS 4 设备上一切正常。我猜问题是我将 UISplitViewController 子类化了,当从 .h 文件中读取“@interface SplitControl: UISplitViewController {”行时它会窒息。

我对它进行子类化的唯一原因是重写 shouldAutorotateToInterfaceOrientation 方法。我在没有 IB 的情况下以编程方式完成我的整个应用程序。如果我使用 IB 创建 SplitViewController 并告诉它支持所有方向,它会有所帮助吗?

有没有办法在不继承控制器的情况下覆盖 shouldAutorotateToInterfaceOrientation ?还有其他方法可以从 3.2 之前的设备中隐藏 UISplitViewController 吗?

4

1 回答 1

6

您需要做的就是弱链接 UIKit.framework。在目标的常规设置中,在“链接库”列表中,将 UIKit.framework 的类型更改为“弱”而不是“必需”。

于 2010-08-06T13:17:36.863 回答