区分iPhone和; iOS中的iPad故事板

时间:2014-05-13 08:02:58

标签: ios storyboard

我正在研究Storyboard。 iPhone和iPad有2个故事板iPad兼容。所以我的问题是如何区分这两个接口。

我正在分享我所做的代码:

// I am writing this code in AppDelegate Method.

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

但它没有用。

3 个答案:

答案 0 :(得分: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];

我认为这会对你有所帮助:)。

答案 1 :(得分:0)

您无需区分界面。此代码将返回您,哪个设备正常工作:

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

答案 2 :(得分:0)

您不需要区分记分板。我们只区分xcode(哪个界面的记分牌):

部署信息 - >主界面 - > STORYBOARDNAME 或者以编程方式,您可以区别于:

  #define interfaceType    UI_USER_INTERFACE_IDIOM()

    #define IPAD     UIUserInterfaceIdiomPad

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

    } else {

    `enter code here`
    }