我正在处理UISplitViewController周围的奇怪错误

我创建了一个库,以处理ViewControllers的表示形式并尽可能地重用代码。在这段代码中,我使用情节提要ID实例化了ViewController,并使用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子类化。

有人处理过类似的事情吗?

谢谢

最佳答案

好吧,我有点傻xD

UISplitViewController在iOS 8和更高版本中支持iPhone,但是我在iOS 7模拟器中进行了尝试。

编辑

但是奇怪的事情到了。实际上,iOS 7在iPhone中支持UISplitViewController,并且如果它是INITIAL VIEW CONTROLLER,它就可以工作。如果您尝试加载后(如我在问题中所尝试的那样),则会收到相同的错误。

因此,我将最初的View Controller更改为UISplitViewController,并在需要时更改了root视图控制器。我可以返回我的SplitViewController,因为在这种情况下,[storyboard InstantiateInitialViewController]可以正常工作。

谢谢你的时间

关于ios - iOS 7 UISplitViewController“在 Storyboard中未找到ViewIdentifier”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28693173/

10-13 05:07
查看更多