2012-01-06 11 views
9

iPhoneとiPadのコントローラを区別したいと思います。ユニバーサルアプリケーションでiPhoneとiPadを区別する方法は?

 #ifdef __IPHONE_NA 
      { 

      UINavigationBar *ipadNavBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 768.0f, 50.0f)]; 
      [[self view] addSubview: ipadNavBar]; 

      UINavigationItem *ipadNavItem = [[UINavigationItem alloc] initWithTitle: @"EMPLOYEE"]; 
      [ipadNavBar pushNavigationItem:ipadNavItem animated:NO]; 
      } 
    else 
     { 

     UINavigationBar *ipadNavBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 360.0f, 45.0f)]; 
     [[self view] addSubview: ipadNavBar]; 



UINavigationItem *ipadNavItem = [[UINavigationItem alloc] initWithTitle: @"EMPLOYEE"]; 
    [ipadNavBar pushNavigationItem:ipadNavItem animated:NO]; 
    } 

というエラー終端されていないの#ifdef

は、このアプローチは正しいですか?

答えて

17

あなたは既に存在している定数を使用することができます:当然あなたは違い定数を示して、あなただけの、しかし私はそれを使用していelseを使用することができelse if声明を必要としない

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
{ 
    // Some code for iPhone 
} 
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{ 
    // Some code for iPad 
} 

を利用可能です。

詳しくは、hereをご覧ください(UI_USER_INTERFACE_IDIOMのセクションをご覧ください)。

+0

ありがとうCrazy Chimp! – user905582

+0

問題ありません - うれしいです! –

+0

アプリを実行するには、iPadブロックの普遍的な必要があります。 –

2
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
     NSLog(@"iPad Idiom"); 
    else 
     NSLog(@"iPhone Idiom"); 
0
if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone) { 

    Console.WriteLine("Phone"); 

} else if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { 

    Console.WriteLine("Pad"); 

} 
+3

将来の読者のための説明付きのコードサンプルが良い答えです。この質問をしている人はあなたの答えを理解するかもしれませんが、あなたがそれに到達した方法を説明すると、無数の人を助けます。 –

関連する問題