Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.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
Iphone TabBar应用程序,CoreData相关应用程序崩溃_Iphone_Cocoa Touch_Ios_Core Data_Ios 3.x - Fatal编程技术网

Iphone TabBar应用程序,CoreData相关应用程序崩溃

Iphone TabBar应用程序,CoreData相关应用程序崩溃,iphone,cocoa-touch,ios,core-data,ios-3.x,Iphone,Cocoa Touch,Ios,Core Data,Ios 3.x,在我的项目中,我使用一个tabBarController作为rootView控制器,然后在我的一个选项卡上,添加我现有的ToDoList应用程序。我遇到的问题是:如果我在AppDelegate中使用此代码:ToDoList将作为RootView加载。但我希望它只显示在适当的标签选择 - (void)applicationDidFinishLaunching:(UIApplication *)application { //todoRootController.managedObjec

在我的项目中,我使用一个tabBarController作为rootView控制器,然后在我的一个选项卡上,添加我现有的ToDoList应用程序。我遇到的问题是:如果我在AppDelegate中使用此代码:ToDoList将作为RootView加载。但我希望它只显示在适当的标签选择

- (void)applicationDidFinishLaunching:(UIApplication *)application {  
    //todoRootController.managedObjectContext = self.managedObjectContext;
    ToDoRootViewController *todoRootViewController = [[ToDoRootViewController alloc]initWithNibName:@"ToDoRootViewController" bundle:nil];
    NSManagedObjectContext *context = [self managedObjectContext];

    if (!context) {
        // Handle the error.
    }

    // Pass the managed object context to the view controller.
    todoRootViewController.managedObjectContext = context;
    UINavigationController *aNavigationController = [[UINavigationController alloc]                                                  
                                                     initWithRootViewController:todoRootViewController];
    self.navigationController = aNavigationController;

    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
    [todoRootViewController release];

    [aNavigationController release];
}
I replace applicationdFinishLaunching:(UIApplication*)应用程序方法作为CoreDataReceipeis示例代码

- (void)applicationDidFinishLaunching:(UIApplication *)application {  
    todoRootController.managedObjectContext = self.managedObjectContext;

//////////////// same stuff
}

但随后它给出了“NSInternalInconsistencyException”,原因:“+entityForName:找不到实体名称“任务”的NSManagedObjectModel

使用界面生成器设置在键入选项卡时将显示的选项卡视图控制器

如果必须以编程方式执行,则应查看TabBarController的文档


默认情况下,在调用选项卡控制器时显示第一个选项卡。是否希望第一个选项卡的视图控制器仅在触摸时显示?我已在interface builder中将ToDoListViewController设置为相应的选项卡。但正如我所提到的,如果我使用第一个代码段,ToDoListViewController将加载为rootview。如果我使用第二个代码段,它会给出上述异常。我真的对这件事感到厌烦:(:(
- (void)applicationDidFinishLaunching:(UIApplication *)application { 

  tabBarController = [[UITabBarController alloc] init]; 

  MyViewController* vc1 = [[MyViewController alloc] init]; 

  MyOtherViewController* vc2 = [[MyOtherViewController alloc] init]; 

  NSArray* controllers = [NSArray arrayWithObjects:vc1, vc2, nil]; 

  tabBarController.viewControllers = controllers; 

  // Add the tab bar controller's current view as a subview of the window 
  [window addSubview:tabBarController.view];

}