Ios7 将MasterDetail模板嵌入选项卡栏中
好的,我正在尝试将使用MasterDetail模板创建的所有应用程序嵌入到选项卡控制器中 我得到一个错误,因为应用程序委托将上下文放置在俯视图控制器或类似的东西上,我不确定将其重定向到哪里 现在,我搜索了一下,发现了这个: 但这并不是特别有用,因为解决方案只会产生更多的错误Ios7 将MasterDetail模板嵌入选项卡栏中,ios7,uitabbarcontroller,Ios7,Uitabbarcontroller,好的,我正在尝试将使用MasterDetail模板创建的所有应用程序嵌入到选项卡控制器中 我得到一个错误,因为应用程序委托将上下文放置在俯视图控制器或类似的东西上,我不确定将其重定向到哪里 现在,我搜索了一下,发现了这个: 但这并不是特别有用,因为解决方案只会产生更多的错误 UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; MasterV
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
MasterViewController *controller = (MasterViewController *)navigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
错误日志:
2013-11-07 07:47:01.217 RoslynCAD[4491:70b] -[UITabBarController topViewController]: unrecognized selector sent to instance 0x9d72fe0
2013-11-07 07:47:01.220 RoslynCAD[4491:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITabBarController topViewController]: unrecognized selector sent to instance 0x9d72fe0'
*** First throw call stack:
(
0 CoreFoundation 0x01cf75e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x01a7a8b6 objc_exception_throw + 44
2 CoreFoundation 0x01d94903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x01ce790b ___forwarding___ + 1019
4 CoreFoundation 0x01ce74ee _CF_forwarding_prep_0 + 14
5 RoslynCAD 0x0000b9f6 -[AppDelegate application:didFinishLaunchingWithOptions:] + 278
6 UIKit 0x007e2355 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 309
7 UIKit 0x007e2b95 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1536
8 UIKit 0x007e73a8 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824
9 UIKit 0x007fb87c -[UIApplication handleEvent:withNewEvent:] + 3447
10 UIKit 0x007fbde9 -[UIApplication sendEvent:] + 85
11 UIKit 0x007e9025 _UIApplicationHandleEvent + 736
12 GraphicsServices 0x0262e2f6 _PurpleEventCallback + 776
13 GraphicsServices 0x0262de01 PurpleEventCallback + 46
14 CoreFoundation 0x01c72d65 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
15 CoreFoundation 0x01c72a9b __CFRunLoopDoSource1 + 523
16 CoreFoundation 0x01c9d77c __CFRunLoopRun + 2156
17 CoreFoundation 0x01c9cac3 CFRunLoopRunSpecific + 467
18 CoreFoundation 0x01c9c8db CFRunLoopRunInMode + 123
19 UIKit 0x007e6add -[UIApplication _run] + 840
20 UIKit 0x007e8d3b UIApplicationMain + 1225
21 RoslynCAD 0x000147ed main + 141
22 libdyld.dylib 0x0308370d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
及
更新:
我已经编辑了我的代码:
UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;
MasterViewController *controller = (MasterViewController *)[tabController.viewControllers objectAtIndex:0];
controller.managedObjectContext = self.managedObjectContext;
我现在得到了这个错误
2013-11-10 00:37:03.455 RoslynCAD[6783:70b] -[UINavigationController setManagedObjectContext:]: unrecognized selector sent to instance 0x9e54c40
(lldb)
错误很明显。您正在这样做:
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
MasterViewController *controller = (MasterViewController *)navigationController.topViewController;
错误来自第二行。错误告诉您,navigationController
实际上是一个UIAbbarController
,而不是UINavigationController
你想要:
UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;
// Get what you need from the tab controller
错误很明显。您正在这样做:
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
MasterViewController *controller = (MasterViewController *)navigationController.topViewController;
错误来自第二行。错误告诉您,navigationController
实际上是一个UIAbbarController
,而不是UINavigationController
你想要:
UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;
// Get what you need from the tab controller
谢谢,我现在面临的是
2013-11-10 00:37:03.455 RoslynCAD[6783:70b]-[UINavigationController setManagedObjectContext:]:执行以下操作后发送到实例0x9e54c40(lldb)
的未识别选择器:UITabBarController*tabController=(UITabBarController*)self.window.rootViewController;MasterViewController*控制器=(MasterViewController*)[tabController.ViewController对象索引:0];controller.managedObjectContext=self.managedObjectContext
选项卡包含一个UINavigationController
,它反过来又包含您的MasterViewController
。谢谢您,我现在面临的是2013-11-10 00:37:03.455 RoslynCAD[6783:70b]-[UINavigationController setManagedObjectContext:]:无法识别的选择器发送到实例0x9E54C440(lldb)
执行后:UITabBarController*tabController=(UITabBarController*)self.window.rootViewController;MasterViewController*控制器=(MasterViewController*)[tabController.ViewController对象索引:0];controller.managedObjectContext=self.managedObjectContext代码>该选项卡包含一个UINavigationController
,它依次包含您的MasterViewController
。