2010-08-06 17 views
2

我正在構建一個爲iPad使用UISplitViewController的通用應用程序,並且應該可以在任何3.0設備上工作,例如第一代iPhone/iPod touch。麻煩的是,儘管我不實際創建,而應用程序是在iPhone上運行UISplitViewController任何情況下,我仍然得到了可怕的通用應用程序中的UISplitViewController子類

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

錯誤控制檯嘗試對第一代iPod時運行觸摸。儘管如此,在iOS 4設備上一切運行良好。我猜測問題是我有分類的UISplitViewController,它在從「.h文件中讀取」@interface SplitControl:UISplitViewController {「行時發生窒息。

我將其子類化的唯一原因是重寫shouldAutorotateToInterfaceOrientation方法。我正在以編程方式完成我的整個應用程序,沒有IB。如果我使用IB創建SplitViewController並告訴它支持所有方向,它會有幫助嗎?

有沒有辦法重寫shouldAutorotateToInterfaceOrientation沒有子類控制器?從3.2之前的設備隱藏UISplitViewController的其他方式?

+0

我正在針對Base SDK 4.0構建,所以像'#if __IPHONE_OS_VERSION_MAX_ALLOWED> = 30200'這樣的宏不會有幫助。我需要在運行時解決這個問題,而不是編譯時。 – SaltyNuts 2010-08-06 13:05:31

回答

6

所有你需要做的就是弱化鏈接UIKit.framework。在目標的常規設置中,在「鏈接庫」列表中,將UIKit.framework的類型更改爲「弱」而不是「必需」。

+0

是的,你救了我的一天。 TKS – Vinzius 2010-11-17 22:16:35

相關問題