私はiPad用のUISplitViewControllerを使用するユニバーサルアプリを構築しており、第1世代のiPhone /iPodtouchなどの3.0デバイスでも動作するはずです。問題は、アプリがiPhoneで実行されている間、UISplitViewControllerのインスタンスを実際に作成していないにもかかわらず、それでも恐ろしいことです。
dyld: Symbol not found: _OBJC_CLASS_$_UISplitViewController
Referenced from: /var/mobile/Applications/.....
Expected in: /System/Library/Frameworks/UIKit.framework/UIKit
第1世代iPodtouchで実行しようとすると、コンソールでエラーが発生します。ただし、iOS4デバイスではすべて正常に動作します。問題は、UISplitViewControllerをサブクラス化していて、.hファイルから "@interface SplitControl:UISplitViewController{"行を読み取るときにチョークすることだと思います。
サブクラス化した唯一の理由は、shouldAutorotateToInterfaceOrientationメソッドをオーバーライドすることです。私はIBなしでプログラム的にアプリ全体を実行しています。IBを使用してSplitViewControllerを作成し、すべての方向をサポートするように指示すると役立ちますか?
コントローラをサブクラス化せずにshouldAutorotateToInterfaceOrientationをオーバーライドする方法はありますか?3.2より前のデバイスからUISplitViewControllerを非表示にする他の方法はありますか?