Я создал новый проект 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. Я никогда не создавал или не добавлял один?
Я тоже это пробовал, но это также вызывает ошибку. Поскольку код ** ожидает, что topViewController **, который новый ** viewController ** нет, - см. Первый комментарий в ** doneFinishLaunchingWithOptions **. Кроме того, я просто попробовал только с ** возвратом YES; **, но это не сработало. Перепроверить. – jerik
Помимо выполнения моего исправления, мне пришлось удалить все из 'didFinishLaunchingWithOptions' и просто« вернуть YES ». Теперь это работает. – jerik