Tabbar는 NavigationController에 액세스 할 수 없습니다
-
05-07-2019 - |
문제
NavigationController 앱이 있습니다.
나는 탭 바를보기에 밀어 넣습니다. 탭이 작동중인 제목이 변경되고 완벽합니다. 이제 내 탭 중 하나가 목록이 있으며 Tabbar 내의 하위 페이지에 연결하려고합니다.
NextViewController *nextController = [[NextViewController alloc] initWithNibName:@"ProfileDetailController" bundle:nil];
[self.navigationController pushViewController:nextController animated:YES];
아무 반응이 없습니다. 코스 이것은 작동합니다 :
self.view = nextController.view;
내 탭 바 에서이 하위 페이지를 푸시하고 NavigationBar 버튼을 변경할 수 있기를 원합니다. 이게 가능해?
해결책
당신이 a를 밀고있는 것 같습니다 UITabBarController
a UINavigationController
? 에서 애플의 문서, 탭 바 컨트롤러를 내비게이션 컨트롤러로 밀 수는 없습니다.
아마도 당신이하고 싶은 것은 반대입니다. 탭 바 컨트롤러가 UINavigationController
탭 항목으로서. 이것은 iPod 앱 또는 전화 앱의 인터페이스와 유사합니다.
다른 팁
나는 Alex와 동의합니다 - 탐색 컨트롤러 내부의 TabbarController는 멋진 UI 패턴처럼 보이지 않습니다.
어쨌든, 귀하의 질문에 답하기 위해 : Tab Bar 컨트롤러를 통해 내비게이션 컨트롤러에 액세스하려고 했습니까?
self.tabBarController.navigationController
이것이 작동하는지 확실하지 않지만 시도해 볼 수 있습니다.
쉬운 해결책을 찾았다 고 생각합니다.
수업에서 당신이보기를 푸시하고 싶은 곳에서 현지인을 선언하십시오. UINavigationController
프로 테티로 :
@interface userMenu : UIViewController {
UINavigationController *navigationController;
}
@property (nonatomic, retain) UINavigationController *navigationController;
합성을 잊지 마십시오.
당신의 수업에서 tabBarController
:
NSArray *viewControllersArray = [self.tabBarController viewControllers];
userMenu *childUserMenu = (userMenu*) [viewControllersArray objectAtIndex:0];
childUserMenu.navigationController = self.navigationController;
그 후에 당신은 할 수 있습니다 [self.navigationController pushViewController:nextController animated:YES];