我正在构建一个使用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的其他方法吗?

最佳答案

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

关于iphone - 通用应用程序中的UISplitViewController子类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3423730/

10-13 03:46