我正在构建一个通用应用程序,它使用适用于 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 并告诉它支持所有方向会有帮助吗?
有没有办法在不子类化 Controller 的情况下覆盖shouldAutorotateToInterfaceOrientation?还有其他方法可以对 3.2 之前的设备隐藏 UISplitViewController 吗?
最佳答案
您所需要做的就是弱链接 UIKit.framework。在目标的常规设置中,在“链接库”列表中将 UIKit.framework 的类型更改为“弱”而不是“必需”。
关于iphone - 通用应用程序中的 UISplitViewController 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3423730/