2014-05-13 62 views
3

我正在致力於Storyboard。我有2個故事板爲iPhone & iPad。所以我的問題是如何區分這兩個接口。區分iPhone和iPad iOS中的情節串聯板

我分享我的代碼,我所做的:

// I am writing this code in AppDelegate Method. 

UIStoryboard *loStoryboard ; 
if (loStoryboard == [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil]) 
{ 
    // iPhone ..... 
} 
else 
{ 
    // iPad.... 
} 

但它不工作。

+0

如何定義'loStoryboard'? – Larme

+0

爲什麼你想區分?正確的故事板將自動加載。此外,'loStoryboard'將是零。你的控制器應該能夠處理iPad和iPhone故事板,而不會有難看的if-else塊。如果您確實需要檢查設備,請使用以下代碼:http://stackoverflow.com/questions/10167221/ios-detect-if-user-is-on-an-ipad – Marc

+0

您的代碼正在工作。它完全符合你的要求。它可以根據Main_iPhone快速創建故事板,無論該應用是在iPhone還是iPad上運行。我建議去尋求穆罕默德的建議。或者是更加成熟的大衛。 –

回答

6

試試這個。

在你AppDelegate方法首先定義這樣一條:

#define IPHONE_STORYBOARD_NAME @"Main_iPhone"; 
#define IPAD_STORYBOARD_NAME @"Main_iPad"; 

然後宣佈這個方法:如果你想

+ (NSString *)storyboardName 
{ 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
     return IPHONE_STORYBOARD_NAME; 
    } else { 
     return IPAD_STORYBOARD_NAME; 
    } 
} 

調用此storyboardName方法

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:[AppDelegate storyboardName] bundle:nil]; 

我認爲這將幫助你:)

+0

非常感謝你... – user3631436

+0

不錯。其工作正常..再次感謝。 :) – user3631436

+0

好的。不用謝 –

0

您不需要區分接口。此代碼將返回給您,哪個設備工作:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{ 
     //Ipad 
} 
else 
{ 
     //Ipod-Iphone 
} 
0

你並不需要區分scoreboards.We僅在Xcode區分(其中記分牌哪個接口):

部署信息 - >主界面 - > STORYBOARDNAME 或者通過編程可以相差:

#define interfaceType UI_USER_INTERFACE_IDIOM() 

    #define IPAD  UIUserInterfaceIdiomPad 

    if (interfaceType == IPAD) { 
    /* do for iPad. */ 

    } else { 

    `enter code here` 
    }