我有一个问题,我尝试实例化一个视图控制器并得到一个错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]'
该错误是由于对情节提要的引用不正确引起的。即self.storyboard
没有返回我期望它返回的东西。
我有一个用于某些类方法的 NSobject 子类设置,我有一个这样的方法设置来返回情节提要:
+(UIStoryboard *)storyboardName {
NSString *storyboardName = @"Main";
if ([self isPad]) {
storyboardName = [storyboardName stringByAppendingString:@"_iPad"];
} else {
storyboardName = [storyboardName stringByAppendingString:@"_iPhone"];
}
return [UIStoryboard storyboardWithName:storyboardName bundle:nil];
}
问题
我的问题是这是处理这个问题的正确方法吗?然后调用 [MyObject storyboardName] 返回正确的故事板。
或者
有没有办法通过应用程序保持对故事板的正确引用。或者找出为什么self.storyboard
没有返回预期的故事板?
在常规 > 主界面应用程序设置中设置了正确的故事板。没有 AppDelegate 添加故事板/窗口工作等。应用程序只需按预期加载主界面故事板和初始视图控制器。