2013-02-11 75 views
0

我在Master-Detail-Application上創建了一個新的iPhone項目。由於我之前需要登錄,因此我在故事板中添加了一個新的ViewController,勾選「是初始視圖控制器」,並將新創建的類LoginViewController分配給此ViewController。更改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中。只要您的stroyboard是在項目設置中加載的,它應該自動加載。

+0

我也試過這個,但是這也會引發錯誤。由於代碼**期望一個新的** viewController **不是的topViewController **,請參閱** didFinishLaunchingWithOptions **中的第一條評論。以及我只嘗試**返回YES; **,但這並沒有工作。將重新檢查。 – jerik 2013-02-12 07:53:43

+0

除了做我的修復,我不得不從'didFinishLaunchingWithOptions'中刪除所有東西,只是'返回YES;'。現在它可以工作。 – jerik 2013-02-12 08:48:35

相關問題