0

3 개의 뷰 컨트롤러 하위 뷰가있는 UITabBarController가 있습니다. 앱의 기본 하위 뷰는 viewOne입니다 (viewControllerOne 사용). 다른 두 가지는 viewTwo와 viewThree이며 예상대로 UITabBar에서 정렬됩니다.UITabBar에서 UIViewController가 수행하고 원본 뷰로 전환 된 작업

내 목적은 viewOne이 활성화되어있는 동안 UITabBar에서 viewTwo가 선택되었을 때 작업을 수행하는 것입니다.

viewTwo 뷰는 표시되지 않지만 대신에 viewTwo를 선택하면 viewTwoController에서 작업이 수행되고 UITabBar는 viewOne을 선택한 것으로 표시하고 orignal 뷰가 다시 표시됩니다.

두 번째 슬롯의 UITabBarItem은 viewTwo 펜촉과 연결되어 있어야합니다.

UITabBarItem을 해당보기 컨트롤러의 작업과 연결할 수 있으며 해당 작업을 완료하면 부모 UITabBarController에게 다른보기로 전환하도록 지시 할 수 있습니까?

답변

1

UITabBarControllerDelegate에는 tabBarController : shouldSelectViewController라는 메서드가 있는데이 메서드는 탭 스위치가 트리거되었을 때 수행하려는 작업을 수행하도록 재정의 할 수 있습니다. http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITabBarControllerDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UITabBarControllerDelegate/tabBarController:shouldSelectViewController :

+0

난 아직도하지만, 실행하는 뷰 컨트롤러의 코드를 원하므로이 도움이되지 않습니다 여기

는 문서입니다. 1) View1이 기본적으로 선택됩니다. 2) View2가 선택되었습니다. 3) View2Controller의 코드가 실행되었습니다. 4) View2Controller의 코드가 완료되면 View1을 다시 엽니 다. –

+1

OS 3.x에서는 selected2Controller를 사용하여 View2에서 작업 할 때 프로그래밍 방식으로 View1을 선택하도록 할 수 있습니다 – nico

+0

설정 ((UITabBarController *) self.parentViewController) .selectedIndex = 0 from viewControllerTwo UITabBarController 막대에서 viewControllerOne에 corersponding 탭을 선택하지만보기가 비어있는 것으로 보입니다. 이 컨트롤러를보고 앱을 시작하면보기가보기 컨트롤러와 연결된다는 것을 알 수 있습니다. 탭을 선택하지만 뷰가 표시되지 않게되는 원인은 무엇입니까? 대신 selectedViewController 특성을 설정하고 UITabBarController의 viewController NSArray를 참조하면 동일한 결과를 얻습니다. 도움! –

관련 문제