2009-06-24 1 views
0

iPhoneCoreDataRecipes 앱에서 TabBarController를 사용하여 뷰를로드하고 연결하는 방법을 파악하기가 매우 어렵다는 것을 알고 있습니다.iPhoneCoreDataRecipes App 튜토리얼 찾기

누군가이 Apple 샘플 앱에서 제공되는 개념을 배우는 방법에 대한 지침이 있습니까? 다른 항목은 Apple 개발자 사이트에서 읽었습니다.

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
    recipeListController.managedObjectContext = self.managedObjectContext; 
    [window addSubview:tabBarController.view]; 
    [window makeKeyAndVisible]; 
} 


2 호선의 나의 이해 : 목록 컨트롤러를 채우기?
3 호 : 탭 컨트롤러보기에 하위보기 추가?

3 번 라인에 대한 나의 이해가 정확하다면 다른 뷰인 유닛 변환이 tabcontroller에 추가 되었습니까?

답변

2

탭 막대 컨트롤러에는보기 컨트롤러 목록이 필요합니다. 이 특정 샘플을 보지 못했으므로 첫 번째 줄에서 처리 할 수 ​​있습니다.

  1. 인스턴스화 모든 뷰 컨트롤러 : 그러나, 일반적으로 다음과 같은 작업을 수행 할

    tabBarController.viewControllers = 
        [NSArray arrayWithObjects: 
        viewControllerTab1, 
        viewControllerTab2, 
        viewControllerTab3, 
        nil 
        ]; 
    
  2. 는 그런 다음을 추가합니다 :

    UIViewcontroller *viewControllerTab1 = ... 
    UIViewcontroller *viewControllerTab2 = ... 
    UIViewcontroller *viewControllerTab3 = ... 
    
  3. 가 탭 바 컨트롤러에 추가 tabBarController의 뷰로서, 서브 뷰로서 윈도우에 이어, makeKeyAndVisible 윈도우 (2 행 및 3 행)가 계속됩니다. 이것들은 탭 바에 한정되지 않고, 다른 뷰 컨트롤러와 마찬가지로 메인 애플리케이션보기에 탭 바보기를 추가하기 만하면됩니다.

여기에서 UITabBarItem 세부 정보를 지정하거나 컨트롤러보기에서 지정할 수도 있습니다. 탭 막대 항목이 표시되지 않는 문제가 발생하지 않도록 여기에서 수행해야합니다. I.E.

+0

tabcontroller에 viewcontroller 배열을 추가하는 것이 옳습니다. 이전의 샘플에서 보았지만이 코드에는이 코드가 없습니다. Nick이 언급 한대로 배선을 XIB에서 수행한다고 말하면서 XIB의 배선을 검사하면 어떻게하면 내 추측이 될까요? – Picflight

+0

나는 XIB 유선 탭 컨트롤러로 아무런 행운을 얻지 못했습니다. 더 많은 탭 항목을 탭 막대 컨트롤러로 드래그 앤 드롭하고 뷰 컨트롤러에 링크하는 것으로 이해합니다. 오히려 프로그래밍 방식으로 뷰 컨트롤러 배열을 정의합니다. –

0

해당 코드는 창과 탭 컨트롤러가 모두 NIB에로드됩니다. 이 시점까지는 모든 것이 이미 "유선"상태이며 모든 작업은 창 하위보기를 설정하고 키를 만드는 것입니다.

도움이 될 수 있습니다. XCode에서 새로운 탭 기반 응용 프로그램을 만들고 그 기능을 살펴보십시오. 여기에는 NIB로드 및 코드 정의보기가 모두 있으므로 차이점을 확인할 수 있습니다. 실제로

1

:

라인 2 : recipeListController managedObjectContext에 대한 참조를 전달한다. managedObjectContext는 CoreData 구조입니다. 여기에는 영구 저장소에 대한 참조가 포함됩니다 (항상 그렇다고 볼 수는 없지만 종종 디스크 [SQLite]의 파일) 및 managedObjectModel (프로젝트의 파일)을 포함합니다. 이 컨텍스트를 사용하면 데이터베이스에 보존 된 오브젝트 모델에 대해 u 리를 작성할 수 있습니다. (이 예제는 "요리법"이므로 "재료"가 필요한 모든 요리법 가져 오기)하지만 이것은 직접 데이터베이스 쿼리가 아니므로 반환되는 "물건"은 recordSet의 행이 아니라 객체입니다. CoreData 응용 프로그램에서 managedObjectContext에 대한 참조 만 찾을 수 있습니다.

위의 설명은 애플리케이션의 창에 하위 뷰를 추가 한 다음 해당 하위 뷰에 tabBarController.view를 할당하는 것입니다.tabBarController가 이전에 적절한 viewController로 채워져 있다고 가정합니다.

희망이 있습니다.

0

내가보기에 인터페이스 빌더에서 코드가 아닌 뷰가로드되는 위치와 동일한 문제가 있다고 생각합니다.

그래서 단계는 다음과 같습니다

1 : 오픈 MainWindow.xib에

2 : 탭 표시 줄 컨트롤러를 열고 이동 : 열보기

what the view mode select looks like

3보기 모드를 설정 탭 요소까지

enter image description here

4 : I 메인 탭 자체를 연결하려고 유지 신원

what the class should look like

의 클래스를 설정할 수 있지만 좀 더 구체적으로해야합니다!

희망이 도움이됩니다.