2017-11-10 17 views
1

()가 중요하지 않습니다 -. 쇼로 사진managedObjectContext의 coredata 엔티티와 오류 또는 내가 설정, 2 Tabbaritems (작업, 목록을 가지고있는 TableView와 응용 프로그램을 만들려면 TopViewController

enter image description here에서 아래

및 핵심 데이터를 관리하고 싶습니다. 핵심 데이터를 작업 및 목록에 저장하고 싶습니다. 목록의 핵심 데이터를 작업에 연결하고 싶지만 오류가 발생합니다. AppDelegate에있는 코드는 다음과 같습니다.

전에 1 개만 만들기 Tabbar (List), 모든 것이 작동하지만 위에서 언급 한 것처럼 다른 tabbar (Task)와 manageObject를 넣고 싶습니다. 나는 응용 프로그램을 실행하면, 그것은 작동하지만 때 나는 목록 TabBar의 클릭, 그것은 오류 :

+0

itemList와 taskList는 동일한 topViewController입니다. – Willeke

+0

다른 topViewController를 만드는 방법은 무엇입니까? –

답변

0

다른 사람이 의견에서 지적했듯이 당신의 도움에 대한

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name 'List'' 

감사합니다 .. 당신의 itemList에와 작업 목록 둘 다 동일한보기 컨트롤러를 참조합니다.

ItemListTableViewController *itemList = (ItemListTableViewController *)navController.topViewController; 

TaskListTableViewController *taskList = (TaskListTableViewController *)navController.topViewController; 

유일한 차이점은 하나의 경우에 다른 클래스로에게 캐스팅 것입니다. 사실 두 번째 탭에 대한보기 컨트롤러에 액세스해야합니다. tabbarcontroller의 viewControllers 속성에서 찾을 수 있습니다. 이 배열의 첫 번째 항목 (인덱스 0)가 제 1 탭 뷰 컨트롤러에 대응하므로 정확히 동일한 방식

UINavigationController *navController = tabBarController.viewControllers[0]; 

있고, 두 번째 탭에 대한 뷰 컨트롤러가 인덱스 1에서, 당신 때문에 작업 목록이 첫 번째 t에 관한 것이다

UINavigationController *taskNavController = tabBarController.viewControllers[1]; 

을 가져야 한 다음

TaskListTableViewController *taskList = (TaskListTableViewController *)taskNavController.topViewController; 

합니다 (TabBar의의 이미지로 다시 찾고 설정할 수 있습니다, 내가 길을 잘못 라운드 인덱스를 가지고 참조 ab, index 0이고 itemList는 두 번째 탭, 즉 인덱스 1입니다.

+0

감사합니다 pbasdf ... 정말 멋지다 ... 잘 작동합니다. –