콘텐츠로 건너뛰기
Home » 20110702 :: [XCode] 빈 프로젝트로 시작해서 화면 띄우기

20110702 :: [XCode] 빈 프로젝트로 시작해서 화면 띄우기

Xcode에서 빈 프로젝트로 시작해서 스토리보드를 추가하고, 이 스토리보드에서 정의한 초기화면을 앱에 띄우려고 하면 나오지 않는다. 빈 프로젝트 템플릿은 앱 로딩 프로세스에서 이러한 과정이 고려되지 않기 때문이다. 따라서 앱 델리게이트에서 다음 동작을 해줘야 한다.

  1. UIWindow 를 생성하고 앱 델리게이트의 window 속성에 연결한다.
  2. 메인 번들에서 원하는 스토리보드를 읽어들인다.
  3. 여기서 초기 화면에 대한 뷰 컨트롤러를 추출한다.
  4. 추출한 뷰 컨트롤러의 뷰를 윈도에 추가한다.
  5. 윈도를 표시한다. (-makeKeyAndVisible 메시지를 보낸다)

아래는 예시이다. 프로젝트를 생성할 때, “EmptyApp” 이라는 이름으로 생성했고, “EmptyApp.storyboard”라는 이름으로 스토리보드를 추가해서 여기에 화면을 그렸다.

// AppDelegate.m

-(BOOL)application:(UIApplication *)application 
 didFinishedLaunchingWithOptions:(NSDictionary *)launchingOptions 
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainscreen] bounds];
    UIStoryboard *myStoryboard = [UIStoryboard storyboardwithName:@"EmptyApp" 
                                               fromBundle:[UIBundle mainBundle]];
    UIViewController *rootViewController = [myStoryboard instantiateInitialViewController];
    [self.window addSubView:rootViewController.view];
    [self.window makeKeyAndVisible];

    return YES;
}

물론 이렇게 하지 않고 Info.plist 파일을 편집 (Xcode에서는 프로젝트 설정값을 바꿈)해서 디폴트 스토리보드 파일 이름을 지정해주면 앱 로딩 프로세스에서 이상의 과정을 자동으로 처리해준다.