2013-05-09 8 views
1

작은 응용 프로그램의 경우 로그인 화면이 있습니다. Auth에는 두 개의 뷰가있는 탭 막대 컨트롤러 (탐색 컨트롤러가있는 컨트롤러)가 표시됩니다. 나는이 튜토리얼을 따라 가고있다. 핵심 데이터를 사용합니다. http://maybelost.com/2011/12/tutorial-storyboard-app-with-core-data/모달보기의 탐색 컨트롤러가있는 tabobcontroller에 managedobjectContext 전달

enter image description here 튜토리얼은 SEGUE를 호출합니다. 하지만 presentModalViewController를 사용하고 싶습니다. 그것은 탭 표시 줄 컨트롤러 내에서 Navigation Control 내부의 View에 managedObjectContext를 전달하는 방법을 제외하고는 작동합니다.

나는이 Passing ManagedObjectContext to view controllers using storyboards with a root UITabBarController을 읽었지만 두 번째 대답 아래의 주석은 올바른 방법이 아니라고 말합니다.

누군가 올바른 방법을 말해 줄 수 있습니까? 그보기에 대한 managedobjectcontext를 설정할 수 있도록 tabbar 컨트롤러 내부에서 뷰에 대한 참조를 얻는 방법을 알고 싶습니다. appDelegate.h에서

감사

편집 :

@interface AppDelegate : UIResponder <UIApplicationDelegate> 
    @property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext; 

내 appDelegate.m : 사실

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    LoginViewController *rootView = (LoginViewController *)self.window.rootViewController; 
    rootView.managedObjectContext = self.managedObjectContext; 
} 

답변

2

제가하는 경향하면 tabBarController에서 컨텍스트를 잡아입니다 예를 들어 viewWill에서 탭 표시 줄의보기를 클릭하면 다음과 같은 인스턴스를 만들 수 있습니다. self.tabBarController를 열고 뷰 컨텍스트를 해당 컨텍스트로 설정하십시오. 그렇게하면 컨텍스트를 tabBar에 전달할 수 있고 각 뷰는 해당 tabBar의 컨텍스트를 참조 할 수 있습니다.

이와 비슷한 것.

MainTabBar *parentTabBarController = (MyTabBar *)self.tabBarController; 
self.managedObjectContext = parentTabBarController.managedObjectContext; 
+0

은 appDelegate에서 액세스하는 것과 동일합니까? – aVC

+0

AppDelegate에서 예를 참조 할 수도 있습니다. 선택은 당신의 책임입니다. 일반적인 관행은 패스하는 것입니다 –

+0

예, 나는 또한 통과하는 것을 선호합니다. 나는 그 질문을 갱신했다. 저를 혼란스럽게합니다 : rootView는 현재 loginview 컨트롤러의 rootView이고, tabBar는 아직 존재하지 않습니다. Auth (tabBar가 표시 될 때) 이후에 첫 번째 탭의 내비게이션 컨트롤러 안의보기에 MOC가 설정되도록 답변을 수정할 수있는 방법을 알려주시겠습니까? – aVC