0

세 개의보기 탭 막대 app이 있고 두 번째보기에는 내비게이션 컨트롤러가 포함됩니다. navcontroller에서 첫 번째/루트보기는 셀을 터치하면 다른 사용자 정의 UI를 밀어서 터치 된 셀에 대한 세부 정보를 공개하는 uitableview를 포함하는 사용자 정의 UI가됩니다.tabbar 응용 프로그램에 UINavigationController 추가

나는 이것에 대한 문서를 찾았지만 그것은 나에게 의미가 없거나 내 머리 위로 날아가는 것처럼 보입니다. 문서에서는 navcontroller 뷰에있는 uiviewcontroller를 만들거나 프로그래밍 방식으로 뷰를 참조해야한다고합니다. 인터페이스 빌더를 사용하여 꽤 편안해졌습니다. 그래서 프로그래밍 방식으로 나에게 조금 겁이납니다. 또한

, 문서에서이 코드 조각은 골치 아픈 것 : 사과 문서

이 부하 위로 즉시 UINavigationView를 표시 할 것 "iPhoneOS에 대한의 ViewController 프로그래밍"에서 가져온 위

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
[window addSubview:myNavigationController.view]; 
} 

?

한 가지 문제는 navView를 즉시 표시하고 싶지 않다는 것입니다. navController/stack은 보조 탭입니다. 그래서 어떻게 그리고 어디서 navController를 구현할 것인가? (지금 당장은 내가 옳다고 생각하는) 내 위임자에게 instaciated하게 했을까? 탐색 모음과 빈보기가있는 기본 UInavigationController를로드 할 수 있었다. --minus 인터페이스 빌더를 통해 사용자 지정 내용보기,하지만 난 사용자 지정 콘텐츠 뷰를 채우는 방법에 대한 손실에 있어요.

희망이 있습니다 의미. 어떤 도움을 주시면 감사하겠습니다

,

답변

1

가장 먼저 이해해야 할 것은 UINavigationController가 작동하는 방식입니다. 뷰가 아닌 UIViewController를 푸시합니다. 두 번째 탭 (UINavigationController가있는 곳)에서 UI 무언가가 발생하면 스택에 UIViewController를 푸시합니다. UITableViewDelegate 프로토콜의 일부입니다

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 

:

은 일반적으로 이루어집니다.

그래서 tableView : didSelectRowAtIndexPath가 호출되면 스택에 푸시 할 UIViewController를 알아야합니다. 펜에서이 View Controller를로드하거나 프로그래밍 방식으로 생성 할 수 있습니다. IB에 익숙해지기 때문에 펜촉에서로드하는 것이 좋습니다.

나는 "내 UINavigationController를 어디서 인스턴스화해야합니까?"와 같은 퀴즈에 대해 걱정하지 않을 것입니다. 지금. 먼저 작동 시키십시오. 그런 다음에 "해야 할 것"에 대해 걱정하십시오.

UINavigationController 항목을 별도의 프로젝트에서 작동시키는 것이 가장 좋은 방법 일 수 있습니다. 그런 다음 주 프로젝트로 접을 수 있습니다. 이것은 네비게이션 컨트롤러에 집중하는 동안 많은 작은 세부 사항을 무시할 수있게 해줍니다.

+0

그 말이 맞습니다. didselectrowatindexpath를 꽤 많이 사용했기 때문에 그 방법에 익숙합니다.하지만 실제로 여기서해야 할 일에 대해 조금 혼란 스럽습니다. uinavcontroller에 메시지를 보내야합니까? 무슨 메시지?)? 게다가 uinavcontroller의 커스텀 컨텐트 영역에 루트 컨트롤러로 표시되는 커스텀 uitableview를 얻을 수 없기 때문에 인덱스 경로에서 행을 선택할 수있는 방법이 없습니다. 모든 설명을 감사하십시오. Nick – nickthedude

+0

나도 이해하기까지는 단순화하기 위해 별도의 앱으로 분리하는 아이디어를 좋아합니다. 감사. – nickthedude

+0

tableView에서 : didSelectRowAtIndexPath : 사용자는 내비게이션 컨트롤러에 pushView 메시지를 보내야합니다. UIViewController를 pushView에 대한 매개 변수로 제공해야합니다. 이것은 활성화하고자하는 뷰를 제어하는 ​​VC입니다. 프로그래밍 방식으로 만들거나 펜촉에서로드 할 수 있습니다. –

관련 문제