2010-08-06 2 views
2

iPad 용 UISplitViewController를 사용하는 범용 앱을 제작 중이며 1 세대 iPhone/iPod touch와 같은 3.0 기기에서도 작동해야합니다. 문제는 1 세대 아이팟에서 실행하려고 할 때 실제로 앱이 아이폰에서 실행되는 동안 UISplitViewController의 인스턴스를 생성하고 있지 않다는 사실에도 불구하고, 난 여전히 콘솔에서 지칠대로 지친범용 앱의 UISplitViewController 하위 클래스

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

오류가 발생할 수 있다는 것입니다 접촉. iOS 4 기기에서는 모든 것이 잘 작동합니다. 내가 문제를 추측하고있는 것은 UISplitViewController를 서브 클래 싱 한 것이고 "@interface SplitControl : UISplitViewController {".h 파일의 행을 읽을 때 질식합니다.

내가 서브 클래 싱 한 유일한 이유는 shouldAutorotateToInterfaceOrientation 메서드를 재정의하는 것입니다. IB없이 프로그래밍 방식으로 전체 앱을 수행하고 있습니다. IB를 사용하여 SplitViewController를 만들고 모든 방향을 지원한다고 말하면 도움이 될까요?

컨트롤러를 서브 클래스하지 않고 shouldAutorotateToInterfaceOrientation을 재정의하는 방법이 있습니까? 3.2 이전 장치에서 UISplitViewController를 숨기는 다른 방법은 없습니까?

+0

Base SDK 4.0에 맞게 구축 중이므로 '#if __IPHONE_OS_VERSION_MAX_ALLOWED> = 30200'과 같은 매크로는 도움이되지 않습니다. 이 문제는 컴파일 타임이 아니라 런타임에 해결해야합니다. – SaltyNuts

답변

6

UIKit.framework를 약하게 연결하기 만하면됩니다. 타겟의 일반 설정에서 "링크 된 라이브러리"목록에서 UIKit.framework의 유형을 "필수"대신 "약함"으로 변경하십시오.

+0

네가 내 날을 구했다. Tks – Vinzius