6

我在使用我的iPad應用程序檢測其在我初始化的第一個UIViewController中的interfaceOrientation時遇到問題(在代碼中)。事實上,如果我跟蹤application.statusBarOrientation,即使我在橫向上啓動,也會返回1(UIInterfaceOrientationPortrait)。如何在開始時檢測iPad的interfaceRotation?

如果我在我的第一個UIViewController中跟蹤self.interfaceOrientation,它將保持爲1,直到它被viewWillDisappear ...這不幸太晚了!

下面是一些代碼(即使沒有太多看):

在我的appDelegate我有這樣的:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    // show loading screen first 
    [window addSubview:loadingScreenViewController.view]; 
    [window makeKeyAndVisible]; 

    NSLog(@"applicationDidBecomeActive:statusBarOrientation = %d", application.statusBarOrientation); 
    return YES; 
} 

可追溯1(縱向),儘管我清楚地看到狀態欄是風景......並在第一個視圖控制器我有這個:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSLog(@"self.interfaceOrientation = %d", self.interfaceOrientation); 
} 

哪些也跟蹤1,即使在橫向模式。

任何想法?難倒了!

謝謝:)

:-Joe

+0

我已經創建瞭解決方法,但它不是很好... 我將縱向圖像加載到viewController中作爲默認值,然後當VC接收到landscapeLeft或rightLeft的一個willRotateToInterfaceOrientation時,它會覆蓋圖像與正確的一個。 因此,它在加載到橫向版本時比默認的縱向版本有效地慢,這有點討厭......我可以使這種效率更高嗎? 謝謝:) – jowie 2010-08-01 17:08:22

回答

2

下面是答案...有點:(來自Apple Dev Forums):.... 「應用程序總是加載,就好像設備是縱向的,然後如果設備真的是橫向的應用程序被告知設備已經旋轉了,這樣做使得筆尖和代碼只需要在一個方向上創建它們的UI,否則可能需要爲每個筆尖設置兩個UI佈局。 ....這不是我喜歡的答案,但這就是iOS不幸的工作方式!

0

什麼在applicationDidFinishLaunching應用程序的委託報告?因爲如果它報告了正確的值,則可以隨時訪問該委託來檢查方向。

+0

不幸的是,applicationDidFinishLaunching在開始時也表示縱向,即使它開始於橫向。 – jowie 2010-08-03 08:09:18