2011-10-24 3 views
9

Xcode 4.2를 사용하여 iOS 5.0 개발을하기 전에 Xcode는 템플릿에 "MainWindow.xib"를 제공했습니다. iOS 5.0이 포함 된 Xcode 4.2를 다운로드하여 사용하고 나면 제공된 템플릿에 "MainWindow.xib"파일이 포함되어 있지 않은 것으로 나타났습니다. 우리는 더 이상 이것을 필요로합니까? App_Delegate의 "didFinishLaunchingWithOptions"메소드에서 템플릿에 "UIWindow"를 만드는 코드가 포함되어 있고 네비게이션 컨트롤러가 있으면 그에 따라 창을 업데이트한다는 것을 알았습니다.iOS 응용 프로그램에 MainWindow.xib이 정말로 필요합니까?

// code that was pulled from a Master Detail application template 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 

    MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil]; 
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController]; 
    self.window.rootViewController = self.navigationController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

나는 나의 질문은 생각 나는 더 이상은 "MainWindow.xib에"를해야합니까, 그래서, 왜 할 경우 애플 템플릿을 제외?

답변

4

내가 지금 결석 한 이유는 프로그래밍 방식으로 창을 만드는 것이 xib 파일을 열고 개체를 보관하는 것보다 훨씬 효율적이라고 생각합니다. 일반적으로 한 줄의 코드에서이 작업을 수행 할 수 있다면 코드에서 수행해야합니다.

MainWindow.xib없이 작업하도록 이전 프로젝트를 수동으로 변경하는 방법에 대한 지침은 Matthew Gillingham의 대답을 읽어보십시오.

+0

"MainWindow.xib"를 우회하면 앞으로의 모든 프로젝트를 수행 할 수 있다고 생각합니까? – 5StringRyan

+2

예, 저는 항상 모든 프로젝트에 대해 프로그래밍 방식으로 창을 만듭니다. 알다시피, 창에 표시되는 첫 번째 것이보기 컨트롤러에 의해 관리되기 때문입니다. 창문 만있는 xib 만 있으면 아무런 이점도 얻지 못합니다. – Costique

15

MainWindow.xib를 사용하지 않는 옵션이 항상 있습니다. UIWindow는 수행하여 프로그램을로드 할 수있는 다음과 main.m에서 UIApplicationMain에 대한 호출은 다음과 같습니다 있는지 만들기

1) :

UIApplicationMain(argc, argv, nil, @"MyAppDelegateClassName"); 

오히려 이보다 :

UIApplicationMain(argc, argv, nil, nil); 

2) Info.plist에 "MainWindow.xib"값이 기본 nib 파일로 없는지 확인하십시오.

3) UIWindow를 프로그래밍 방식으로 응용 프로그램 대리인에로드하는 중입니다.

아니요, 아니요, MainWindow.xib를 사용할 필요가 없으며 실제로는 가질 수 없습니다. 프로그래밍 방식으로 항상 일을 할 수 있습니다.

Apple이 기본 Xcode 설정에서이 변경을 한 이유는 무엇입니까? 나는 그 대답을 모른다. 그러나 성능 또는 ARC 로의 전환 또는 작은 응용 프로그램 파일 크기 또는 다른 모든 것을 수행해야 할 수도 있습니다.

+0

몇 가지 찬반 양론을 제공 할 수 있습니까? 나는 "MainWindow.xib"의 사용법이나 사용하지 않는 것에 관해서 앞으로 나아갈 최선의 방법이 무엇인지 알아 내려고 노력 중이다. – 5StringRyan

+0

나는 그것에 대해 생각해 봤는데, 실제로 너무 많은 찬성으로 떠오르는 문제가 있습니다. 인터페이스 빌더에서 컨테이너 뷰를 조작 할 수 있기 때문에 시각적 인 방법으로 탭 모음 기반 응용 프로그램 (또는 탐색 컨트롤러)을 설정할 수 있다고 가정합니다.이제 템플릿으로 새 탭 표시 줄 응용 프로그램을 만들 때 탭 표시 줄은 코드에만 존재합니다. 그러나 Interface Builder로 View Controller를 생성하고 사용하는 것이 여전히 쉽기 때문에, 많은 것을 잃어 버렸다고 생각하는 것이 어렵습니다. 아마도 MainWindow.xib를 사용하지 않고 앞으로 나아갈 것입니다. –

2

MainWindow.xib의 사용법에 대해 혼란스러워합니다. 심지어 윈도우의 rootViewController 또는 addSubview를 설정해야합니다. 그 정보가 MainWindow.xib에 포함되어 있지 않습니까? 왜 아직도 창문에 대해 말할 필요가 있니?

따라서 MainWindow.xib를 제거하는 것이 좋습니다.

관련 문제