나는 tabbar 응용 프로그램을 가지고 있으며 비 rootviewcontroller에 navigationcontroller를 추가하고 싶습니다.비 rootviewcontroller에 navigationcontroller를 추가하는 것이 가능합니다.
가능합니까?
도움 주셔서 감사합니다.
- 업데이트 2
나는 tabbar 응용 프로그램을 가지고 있으며 비 rootviewcontroller에 navigationcontroller를 추가하고 싶습니다.비 rootviewcontroller에 navigationcontroller를 추가하는 것이 가능합니다.
가능합니까?
도움 주셔서 감사합니다.
UINavigationController
이 UIViewController
의 서브 클래스는 당신이 그것을 제시 할 수 있습니다 또는 하위 뷰 등의 뷰를 추가 할 수 있습니다 같은입니다 + 그리니치 표준시 23시 10분 (당신을하지 않는 가정 흥미로운 부작용이있는 UINavigationController
인스턴스 자체를 릴리스하십시오.
네가 할 수없는 일은 탐색 컨트롤러를 제공된 컨테이너보기 컨트롤러 중 일부에 밀어 넣는 것입니다. 네비게이션 컨트롤러를 다른 네비게이션 컨트롤러 스택으로 밀어 넣는 것.
tabbar 애플리케이션을 생성하고 내비게이션 컨트롤러를 rocont level에없는 viewcontroller에 추가했습니다. 그러면 버튼을 놓고 push segue에 대한 cntrl로 드래그하여 다음 오류가 발생했습니다 : 캐치되지 않은 예외 'NSGenericException'으로 인한 앱 종료 중, 이유 : 'Push segues는 소스 컨트롤러가 UINavigationController의 인스턴스에 의해 관리되는 경우에만 사용할 수 있습니다.'내비게이션 컨트롤러를 루트 레벨에있는 뷰 컨트롤러에 추가하면 문제가 발생하지 않습니다. –
그래서 네비게이션 컨트롤러에있는보기에만 푸시 세그를 추가 할 수 있습니다. 그렇지 않으면 '밀어 넣기'가 의미가 없습니다. – Wain
문제를 파악한 이미지로 첫 번째 항목을 업데이트했습니다. –
탭 막대 컨트롤러의 각 탭에는 사용자 지정보기 컨트롤러가있을 수 있습니다. 사용자 정의보기 컨트롤러는 탐색 컨트롤러가 될 수 있습니다.
그러나 네비게이션 컨트롤러에서 네비게이션 컨트롤러를 추가하려면 테이블 뷰 셀을 탭하면 네비게이션 컨트롤러에 모달로 표시해야합니다. 네비게이션 컨트롤러를 다른 네비게이션 컨트롤러로 밀어 넣을 수는 없습니다.
예 :
당신이 YourAnotherRootVC * anotherVC = 제시하고자하는 네비게이션 컨트롤러에 대한 루트 뷰 컨트롤러의 인스턴스를 [[YourAnotherRootVC의 ALLOC] initWithNibName을 "YourAnotherRootVC"번들 @를 : [NSBundle mainBundle]];
인스턴스화 UiNavigationController UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController : anotherVC];
현재 탐색 컨트롤러에 표시하십시오. [self.navigationController presentModalViewController : navController animated : YES];
문제를 파악한 이미지로 첫 번째 항목을 업데이트했습니다. –
이 아닌 rootViewController 무엇을 의미합니까? 모든보기 컨트롤러 (splitViewController를 제외하고)는 탐색 컨트롤러에 포함될 수 있습니다. – rdelmar
그러나 나는 그것을 할 수 없었다. tabbar 응용 프로그램을 만들고 navigationcontroller를 rollcontrol에없는 viewcontroller에 추가하고 다음 오류가 발생했습니다. 캐치되지 않은 예외 'NSGenericException'으로 인해 응용 프로그램이 종료되었습니다. 이유 : '밀어 넣기 연결선은 소스 컨트롤러가 UINavigationController 인스턴스. ' –
구조를 표시하면 탐색 컨트롤러를 모달로 표시해야합니다. 문제를 해결하는 다른 방법은 탐색 컨트롤러에 SecondViewController를 포함시키는 것입니다 (탐색 표시 줄을 숨길 수 있습니다. 원하지 않으면 탐색 표시 줄을 숨길 수 있습니다). – rdelmar