[ios] iOS 7-기본 뷰 컨트롤러 인스턴스화 실패

새로 만든 앱에서 Xcode 5를 사용하고 있으며 방금 만들 때 실행 버튼을 클릭하고 클릭하면 프로젝트가 빌드되지만 iOS 시뮬레이터에 표시되지 않고 다음 메시지가 표시됩니다.

 Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' -
 perhaps the designated entry point is not set?

나는 물론 그것에 대해 Google을 검색했으며 XCode가 아직 어떤 뷰 컨트롤러가 초기 컨트롤러인지 알지 못하기 때문에 이것이 일어나고 있다고 모두 지적합니다. 하지만 이상한 점은 앱을 페이지 기반 (단일보기 및 탭 앱 옵션 시도) 앱으로 만들었고 XCode는 이미 스토리 보드를 정의했다는 것입니다.

또한 프로젝트의 기본 인터페이스 옵션으로 이동하면 스토리 보드 (Xcode 자체에서 “Main”이라고 함)가 설정되고 Storyboard에서 내 뷰 컨트롤러는 “Initial View Controller”로 설정됩니다.

여기에 이미지 설명 입력

뭐가 잘못 되었 니?



답변

그래서 이것은 나에게도 일어났습니다. 50 번 확인했고 “Is Initial View Controller”가 확인되었습니다. 그것은 갑자기 일어났습니다. 그래서 어떻게 고쳤습니까?

  1. 프로젝트에서 새 스토리 보드를 만들고 Main_iPhoneV2 (또는 원래 스토리 보드 스타일에 따라 iPadV2)와 같은 이름을 지정합니다.
  2. 깨진 스토리 보드를 열고 흰색 영역의 아무 곳이나 클릭 한 다음 command-a, command-c를 차례로 누릅니다 (모두 선택하고 복사).
  3. 새 스토리 보드를 열고 command-v를 눌러 동일한 설정을 붙여 넣습니다.
  4. 프로젝트 설정으로 이동하여 “주 인터페이스”를 새 Main_iPhoneV2로 변경합니다 (iPad이고 범용 앱을 작성하는 경우 -Info.plist를 편집하고 “Main storyboard file”값을 찾아야합니다. 기본 이름 (iPad)
  5. 다시 컴파일하고 머리카락을 당기지 마십시오.

답변

검사는 초기 뷰 컨트롤러 (가) 경위 속성에.

여기에 이미지 설명 입력


답변

먼저 오른쪽 유틸리티 막대 에서 View Controller를 클릭 합니다. 그런 다음 Attributes Inspector를 선택하고 View Controller 섹션에서 ‘Is Initial View Controller’ 확인란이 선택되어 있는지 확인하십시오!


답변

이 경고는 다음과 같은 코드가있는 경우에도보고됩니다.

    window = UIWindow(frame: UIScreen.mainScreen().bounds)
    window?.rootViewController = myAwesomeRootViewController
    window?.makeKeyAndVisible()

이 경우 Main Interface앱에 대한 스토리 보드 항목이 필요하지 않으므로 대상 설정의 첫 번째 페이지로 이동하여 비워 두십시오.


답변

Interface Builder 사용 :

Is initial view controller ‘가 설정되어 있는지 확인하십시오 . 아래 단계를 사용하여 설정할 수 있습니다.

  1. 당신의 선택 뷰 컨트롤러 (초기 화면으로 등장 할 것입니다).
  2. 유틸리티 창 에서 속성 관리자 를 선택합니다 .
  3. View Controller 섹션 에서 ‘ Is Initial View Controller ‘를 선택 합니다 (그렇지 않은 경우).

이 단계를 수행했지만 여전히 오류가 발생하면 uncheck and do it again.

문제 해결 단계

프로그래밍 방식으로 사용 :

목표 -C :

        self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

        UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"]; // <storyboard id>

        self.window.rootViewController = viewController;
        [self.window makeKeyAndVisible];

        return YES;

빠른 :

        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

        var objMainViewController: MainViewController = mainStoryboard.instantiateViewControllerWithIdentifier("MainController") as! MainViewController

        self.window?.rootViewController = objMainViewController

        self.window?.makeKeyAndVisible()

        return true


답변

내 Tab Bar Controller가 시뮬레이터에 검은 색 화면과 함께 나타나지 않는 문제를 경험했습니다. 내 앱이 시뮬레이터에 나타나도록하기 위해 다음을 수행했습니다.

  1. Main.storyboard로 이동합니다.
  2. Is Initial View ControllerAttributes inspector 탭에서 확인 하세요.

Attributes Inspector의 Initial View Controller입니다.


답변

창을 수동으로 설정하십시오.

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    if (!application.keyWindow.rootViewController)
     {
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

        UIViewController *myViewController= [storyboard instantiateViewControllerWithIdentifier:@"myViewController identifier"];

         application.keyWindow.rootViewController = myViewController;
     }
}