2015-02-24 73 views
2

我負責的一個奇怪的錯誤圍繞UISplitViewControllerUISplitViewController「ViewIdentifier不是在故事板中發現」錯誤與iOS 7

我爲了對付ViewControllers介紹和重用代碼儘可能創造一個圖書館。在此代碼中,我使用他們的故事板ID實例化ViewControllers,並使用SplitViewController切換ViewController。

儘管它在iOS 8中工作正常,但它在iOS 7中崩潰並出現此錯誤。

Storyboard (<UIStoryboard: 0x7f94bb52ccd0>) doesn't contain a view controller with identifier 'MySplitViewControllerIdentifier' 

哪裏發生這種情況的代碼是這個

+(UIViewController *) instantiateStoryboard:(UIStoryboard *) storyboard 
        withViewIdentifier:(NSString *) identifier 
{ 
    @try { 
    if ([identifier isEqualToString:@""] || identifier == nil) { 
     return [storyboard instantiateInitialViewController]; 
    } 
    else { 
     //HERE IT CRASHES !!!!!! 
     return [storyboard instantiateViewControllerWithIdentifier:identifier]; 
    } 
    } 
    @catch (NSException *exception) { 
    NSLog(ERROR_NO_VIEWCONTROLLER_FOUND, [self class], identifier, storyboard.description); 
    } 
} 

我檢查了好幾次這個SplitViewController的配置我的故事板和故事板ID是正確的。如果有幫助,這個SplitViewController不是子類。

有人處理過類似的事嗎?

感謝

回答

1

嗯,我有點傻的xD

UISplitViewController支持iPhone iOS中8和更高版本,但我想在iOS的7模擬器。

編輯

但是這裏來了奇怪的事情。實際上UISplitViewController在iOS 7中受iPhone支持,並且如果它是初始視圖控制器,它就可以工作。如果你嘗試加載之後,正如我在我的問題中嘗試的那樣,你會得到相同的錯誤。

因此,我將我的初始視圖控制器更改爲我的UISplitViewController,並在需要時更改我的根視圖控制器。我可以回到我的SplitViewController,因爲[storyboard instantiateInitialViewController]在這種情況下工作正常。

感謝您的時間

+0

您可以將splitviewController.view添加到您的任何視圖控制器的內部。所以你不需要只使用spliview作爲initialviewController並改變你的rootviewController。 – kocakmstf 2015-02-26 08:06:31

+0

是的,這是其他解決方案,謝謝:) – WedgeSparda 2015-02-26 16:16:45