2013-02-11 1 views
0

Я создал новый проект iPhone в приложении Master-Detail. Как мне нужен логин и прежде, я добавил в раскадровке нового ViewController, отмеченный «является исходным View Controller» и назначен нового созданного класса LoginViewController к этому ViewController.Измените первоначальный контроллер View-Master-Detail-Application

Кроме того, но не уместно (на мой взгляд), я создал segue и связал его с ViewController на NavigationController (шаблона Master-Detail-Template).

AppDelegate.m был изменен, чтобы запустить новый контроллер при загрузке:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 

    /* // Old Master-Detail-View-Controller 
    UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; 
    MasterViewController *controller = (MasterViewController *)navigationController.topViewController; 
    controller.managedObjectContext = self.managedObjectContext; 
    */ 

    (LoginViewController *)self.window.rootViewController; 

    return YES; 
} 

Это будет в конечном итоге к ошибке:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: '-[UICollectionViewController loadView] loaded the "Qn5-Rj-iPA-view-IRE-eP 
-ILZ" nib but didn't get a UICollectionView.' 

я и попытался это:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 

    LoginViewController *loginViewController = [[LoginViewController alloc] init]; 

    self.window.rootViewController = loginViewController; //Set the view controller 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

В результате в подобной ошибки:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: 'UICollectionView must be initialized with a non-nil layout parameter' 

Где моя ошибка?

То, что я не получаю, где, черт возьми, появляется сообщение об ошибке UICollectionView. Я никогда не создавал или не добавлял один?

Storyboard

ответ

5

Мой LoginViewController по нарицанию по нахождению UICollectionViewController вместо UIViewController. Я исправил это, и он работает.

Объяснение: странная ошибка, которую я не понял в первую очередь. Как всегда правда в исходном коде. Повторная проверка помогает.

0

Вам не нужно ничего делать, чтобы загрузить контроллеры просмотра в AppDelegate. До тех пор, пока ваш стройборд будет загружен в настройки проекта, он должен загружаться автоматически.

+0

Я тоже это пробовал, но это также вызывает ошибку. Поскольку код ** ожидает, что topViewController **, который новый ** viewController ** нет, - см. Первый комментарий в ** doneFinishLaunchingWithOptions **. Кроме того, я просто попробовал только с ** возвратом YES; **, но это не сработало. Перепроверить. – jerik

+0

Помимо выполнения моего исправления, мне пришлось удалить все из 'didFinishLaunchingWithOptions' и просто« вернуть YES ». Теперь это работает. – jerik

 Смежные вопросы

  • Нет связанных вопросов^_^