Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将新的开始视图添加到现有IOS XCode4项目时出错_Ios_Uitableview_Core Data_Storyboard - Fatal编程技术网

将新的开始视图添加到现有IOS XCode4项目时出错

将新的开始视图添加到现有IOS XCode4项目时出错,ios,uitableview,core-data,storyboard,Ios,Uitableview,Core Data,Storyboard,我已经按照Lynda的IOS核心数据教程构建了部分应用程序。它从一个导航控制器/表视图开始,并分为几个其他视图。一切都很好 问题是,我需要添加一个基本的“主菜单”主屏幕。当我在故事板中添加一个新的空白视图,然后将其设置为初始视图控制器,然后设置为b/r时,我会崩溃。是否有指向其他视图的链接并不重要 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewControl

我已经按照Lynda的IOS核心数据教程构建了部分应用程序。它从一个导航控制器/表视图开始,并分为几个其他视图。一切都很好

问题是,我需要添加一个基本的“主菜单”主屏幕。当我在故事板中添加一个新的空白视图,然后将其设置为初始视图控制器,然后设置为b/r时,我会崩溃。是否有指向其他视图的链接并不重要

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController viewControllers]: unrecognized selector sent to instance 0x748dce0'
如果我在appdelegate didfinishloadingwithoptions(见下文)中注释掉代码,则应用程序将根据需要使用新的空白窗口加载

因此,我在appdelegate.m中有需要的代码,但在appdelegate.m中,它在加载时会使手机崩溃

编辑 不过,还有其他相关问题,我已经添加了另一个AppDebug文件,现在应用程序按预期的方式加载到空白启动窗口。但是,当我随后尝试导航到tableviewcontroller并在其viewdidload事件上触发fetchresults方法并检查fetchresultscontroller对象的有效性时,我遇到了此崩溃错误

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+entityForName:nil不是搜索实体名称“PayItemMaster”的合法NSManagedObjectContext参数 *第一次抛出调用堆栈:

现在导致问题的代码是

-(NSFetchedResultsController *) fetchedResultsController {
if (_fetchedResultsController != nil) {
    return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"PayItemMaster"
                                          inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"payClass"
                                                               ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

_fetchedResultsController = [[NSFetchedResultsController alloc]initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"payClass" cacheName:nil];
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}


。。。。。。。当在应用程序加载时调用该视图时,该代码工作正常,但当从另一个视图调用该视图时会导致问题(请记住,用于启动此tableview fine的应用程序,但我现在希望它在“菜单视图”中启动,然后导航到此仍保留其原始编码的tableview)

您收到该错误,因为在代码中的某个地方(可能在app委托中),您正在调用初始控制器上的viewControllers方法。当那个控制器是一个导航控制器时,它工作正常,但现在您放入了一个普通的UIViewController,它就不再工作了。如何修复此问题取决于您正在尝试执行的操作,这在您的问题中尚不清楚。是的,在appdelagate中,我仍在尝试初始化导航控制器,因为您选择了。。。以及设置一些上下文。如果我评论这些内容,应用程序将以新的空白屏幕正确加载。现在,我应该把这段注释掉的代码放在哪里,以便旧的导航控制器可以像以前一样工作?(使用应用程序委托中的代码)您如何尝试初始化导航控制器?发布你的应用程序代理代码。这是didfinishloadingwithoptions UINavigationController*nav=(UINavigationController*)self.window.rootViewController中应用程序代理的原始代码;PayItemMasterViewController*pimtc=(PayItemMasterViewController*)[[nav ViewController]对象索引:0];pimtc.managedObjectContext=self.managedObjectContext;我删除了它,得到了我想要的负载,但需要把它放在其他地方。我可以通过按照Xcode 4构建运行创建一个通用的主细节应用程序来轻松复制这个过程,一切正常,那么有人能告诉我以后如何在该项目中插入一个带有按钮的普通视图,以成为新的开始视图吗?(充当某种“主菜单”)