0

로그인 시스템이있는 응용 프로그램이 있습니다. 사용자가 성공적으로 로그인하면 tabBarController가 런타임에 동적으로 변경되기를 원합니다. 5 개의 탭 (Accueil, Tous les Voyants, Inscription, Connexion, Aide)이 있습니다.프로그래밍 방식으로 tabBarItem을 viewController에 연결하는 방법 (iPhone, iOS)

사용자가 로그인 버튼을 누르면, Inscription을 Achat Jetons로 변경하고 Connexion을 Profile로 변경하고 다른 ViewController를이 두 tabBarItems에 연결하고자합니다!

지금 당장 탭 바의 제목과 이미지 로고를 바꿀 수있었습니다. 하지만 난 그들에게 viewController 링크하는 방법을 몰라! 여기에 내가 지금 가지고있는 작업은 다음과 같습니다

나는 스토리 보드 IB를 통해 2 개 개의 새로운 viewControllers을 만든

- (IBAction)BTN_ConnexionClick:(id)sender { 
UITabBarController *tabBarController = (UITabBarController *)self.tabBarController; 
UITabBar *tabBar = tabBarController.tabBar; 

UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:2]; 
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:3]; 

[tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"menu_iOS_achat.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"menu_iOS_achat.png"]]; 
[tabBarItem2 setFinishedSelectedImage:[UIImage imageNamed:@"menu_iOS_profile.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"menu_iOS_profile.png"]]; 

tabBarItem1.title = @"Achat Jetons"; 
tabBarItem2.title = @"Profile"; 

}, 난 그냥 새로운 사람과 오래된 링크의 ViewController를 교체하는 방법을 모르겠어요! 당신의 도움을 주셔서 감사합니다! :)

답변

0

실수는 탭 표시 줄 컨트롤러의 탭 표시 줄 탭 항목을 직접 변경한다는 것입니다. 하지 마! 탭 표시 줄 컨트롤러의보기 컨트롤러를 변경하십시오. 탭 표시 줄 컨트롤러는 탭 표시 줄 항목을 가져옵니다.

당신은이 주제에 내 책을 읽을 수 있습니다

http://www.apeth.com/iOSBook/ch19.html#_configuring_a_tab_bar_controller

사항에 특히주의 :

자동으로 각 자식 뷰 컨트롤러

의 tabBarItem을 표시합니다 탭 바 컨트롤러의 탭 표시 줄

엉망으로 만들지 마세요! (당신은 그것을 엉망으로 만들고있다.) 뷰 컨트롤러의 tabBarItem을 조작한다. 탭 막대 컨트롤러의 viewControllers 조작 탭 막대 컨트롤러의 탭 막대를 직접 만지지 마십시오.

+0

좋아, 난 내 title 속성과 내 image 속성을 해당 viewController 자체에 넣었다. 이제 로그인 버튼 동작에 다음과 같이 표시됩니다. UIViewController * profile = [SceneProfile new]; [self.tabBarController setViewController : @ [프로필]]; 내 메뉴는 바뀌지 만 검은 색 창이 콘텐츠로 표시됩니다. (스토리 보드에 내 프로필 ViewController 레이아웃을 만들었습니다.) 레이아웃을 표시하는 방법을 설명해 주시겠습니까? 매트 감사합니다! – Shinnyx

+0

"스토리 보드에 프로필 ViewController 레이아웃을 만들었습니다." 그러나'[SceneProfile new]'는 그 사실을 전혀 모른다. 식별자를 사용하여 storyboard_ ('instantiateViewControllerWithIdentifier :')에 그려 넣은 SceneProfile 인스턴스를 가져와야합니다. 그 중 하나 또는 "SceneProfile.xib"라는 펜촉을 사용하고 스토리 보드가 아닙니다. – matt

+0

그건 그렇고, 그것은보기 컨트롤러에 내 책의 장을 읽는 데 도움이 될 수 있습니다 : http://www.apeth.com/iOSBook/ch19.html. 보기 컨트롤러가 무엇인지,보기를 얻는 위치, 스토리 보드가 실제로 무엇인지, 탭 막대 컨트롤러와 다른 부모보기 컨트롤러가 어떻게 작동하는지 등을 배웁니다. 그 것들은 당신이 여기서 모르는 것들 인 것 같습니다. – matt