2012-08-25 2 views
3

"ScreenSelectLevelViewController"라는 Universal 응용 프로그램에서 .h, .m 및 .xib라는 새로운 화면을 만들었습니다 파일. 하지만 아이폰 용으로 하나, iPad 용으로 두 개의 분리 된 xib 파일을 만들고 싶었습니다. 그래서 나는이 새로운 이름으로 두 파일을 내 ScreenSelectLevelViewController.xib을 복제하고 이름을 변경 :2 개의 xib 파일로 하나의 Objective-C 클래스를 만드는 법 (하나는 iPhone 용, 다른 하나는 iPad 용)

  • ScreenSelectLevelViewController_iPhone.xib을;
  • ScreenSelectLevelViewController_iPad.xib;

    ScreenSelectLevelViewController *newScreen = [[ScreenSelectLevelViewController alloc] initWIthNibName:"@ScreenSelectLevelViewController" bundle:nil]; 
    [self presentModalViewController:newScreen animated:true]; 
    

    문제는 다음과 같습니다 : 내 코드에

는이 같은 새보기 열 내가 아이폰 시뮬레이터 작품에 실행할 때,하지만 내가 아이 패드 시뮬레이터에서 실행하면 응용 프로그램이 여전히를 엽니 다 이 새 화면의 xib 파일의 iPhone 버전. 누군가 나를 도울 수 있니? 앱 위임에서

답변

1

:

이, 당신은 위 무슨 걸릴 수 있습니다 당신의 새로운 전망을 여는 후, 시작할 때 사용하고 적용 할 XIB 응용 프로그램을 말할 것이다
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
     self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil]; 
    } else { 
     self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil]; 
    } 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

:

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
    ScreenSelectLevelViewController *newScreen = [[ScreenSelectLevelViewController alloc]   
    initWIthNibName:"@ ScreenSelectLevelViewController_iPhone.xib" bundle:nil]; 
    [self presentModalViewController:newScreen animated:true]; 
} 
else{ 
    //same for iPad 
} 
+0

신체 고맙습니다! 나는 그것이 "자동"이라고 생각했지만 AppDelegate에서 발견 한 코드를 사용했다. 이제는 사용법을 알고있다. 고맙습니다!! – user1624785

+0

@ user1624785이 답변으로 도움이 되었다면이 답 옆에있는 "확인 표시"를 클릭하여 올바른 것으로 표시하십시오! –

7

당신은 단순히 물결표와 밑줄을 교체, 파일 이름을 바꿀 수 있습니다 :

ScreenSelectLevelViewController~iphone.xib 
ScreenSelectLevelViewController~ipad.xib 

그러면 게시물에 작성한 코드가 자동으로 현재 장치에 맞는 파일을로드합니다.

이 내용은 Resource Programming Guide의 "iOS에서 장치 별 리소스 지원"제목 아래에 설명되어 있습니다.

관련 문제