2012-03-02 2 views
0

유니버설 앱이 개발 중입니다. 아이폰 또는 아이 패드 시뮬레이터에 iOS 유니버설 앱 및 nibs/xibs

ExcitingViewController.xib 
ExcitingViewController~iPad.xib 

가 적절한 변형 (즉, ~ 아이 패드 접미사 하나가 선택되어 자동적으로 포착되고,

응용 프로그램은 펜촉을 사용하고, 나는 예를 들어,이 iPad에서 코드 변경없이).

그러나 실제 iPad에서는 iPhone 변형이 항상 사용됩니다.

프로그래밍 방식으로 적절한 NIB를 선택하는 방법에 대해 언급했지만이 부분이 시뮬레이터에서 자동으로 처리되므로 실제로 이것이 진짜 이유가 될 수는 없습니다.

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
{ 
    excitingViewController = [[ExcitingViewController alloc] initWithNibName:@"ExcitingViewController" bundle:nil]; 
} 
else 
{ 
    excitingViewController = [[ExcitingViewController alloc] initWithNibName:@"ExcitingViewController~iPad" bundle:nil]; 
} 

실제 장치에서 ~ iPad 변형을 자동으로 선택하는 데 유용한 정보가 있습니까?

(btw, 시뮬레이터는 일반적으로 올바른 동작을 나타내는 데 완전히 의존하므로 이러한 차이점을 발견하는 것은 귀찮습니다.)

답변

0

확인이 필요 내 코드에 IS_IPAD()를 사용, 대답은 당신이 필요로 보인다 이 문제를 프로그래밍 방식으로 처리하려면 (질문에 표시된 것처럼) 애플에 의해 놓친 기회처럼 보이지만 어쩌면 더 많은 것이있을 수 있습니다.

0

내 프로젝트에서 수행 한 작업은 initWithNibName/initWithCoder/init을 덮어 쓰고 iPad인지 확인한 다음 적합한 경우로드하는 것입니다.

내가 아이 패드 검사에 대한 내 PCH에 매크로를 가지고 : 다음

// iPad detection 
#ifdef UI_USER_INTERFACE_IDIOM 
#define IS_IPAD() (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
#else 
#define IS_IPAD() (false) 
#endif 

난 그냥

0

미안 늦게 파티에 있어요 그러나 당신이 같은 노력이 :

이 장치 불가지론 그렇게해야 ipad.xib

  • ExcitingViewController ~ iphone.xib

    • ExcitingViewController ~을

      [[ExcitingViewController alloc] initWithNibName:@"ExcitingViewController" bundle:nil] 
      

      은 두 장치에서 모두 t 그는 사용자 인터페이스 관용구.

      이것은 일종의 Resource Programming Guide입니다.