2014-04-15 1 views
1

Storyboard 속성을 기반으로 항상 동일한 것이 아니라 런타임시 내 초기보기 컨트롤러를 정의하기 위해 this question의 조언을 따르고 있습니다.AppDelegate에서 초기 뷰 컨트롤러를 프로그래밍 방식으로 변경할 수없는 이유는 무엇입니까?

이 내 didFinishLaunching 방법 :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UINavigationController *compactNavigationController = [mainStoryboard instantiateViewControllerWithIdentifier:@"CompactNavigationController"]; 
    self.window.rootViewController = compactNavigationController; 
    [self.window makeKeyAndVisible]; 

    CompactPostsViewController *controller = (CompactPostsViewController *)compactNavigationController.topViewController; 
    controller.managedObjectContext = self.managedObjectContext; 

    return YES; 
} 

그리고 내 스토리 보드에서 "초기 뷰 컨트롤러는"선택 해제했습니다, 나는 내 응용 프로그램의 정보의 기본 스토리 보드에서 "기본"을 제거했습니다.

하지만 앱을 실행하면 완전히 검은 색 화면이 표시됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

창을 만든 적이 없으므로 창이 없습니다. 당신은이 라인을 추가 할 필요가

당신이 당신의 Info.plist에서 "메인 스토리 보드 기본 이름"항목이 있지만, 당신이를 제거하는 경우, 당신은 창을 만들 때 창이 생성됩니다
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; 

당신 자신.

0

귀하의 스토리 보드에서 (tableview 컨트롤러를 마우스 오른쪽 버튼으로 클릭하여) 링크를 확인하십시오. 이것은 주로 tableview 컨트롤러를 제대로 연결하지 않은 경우 발생합니다.