2014-11-06 4 views
1

사용자가 Tab Bar Controller에서 다른보기로 Bar Item을 밀 때 다른보기를 표시하기 전에 일부 코드를 실행하려고합니다.Tab Bar Controller :보기 전환 전 코드 실행

나는 내 수업에서 위임을 사용하는 것을 시도하고있다 :

@interface HPAAddCarOverallInfoTableViewController() <UITabBarControllerDelegate>

그리고 위임 방법을 사용하여 내 문제에 가까이 :

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

불행하게도, (UIViewController *)viewController 선택한보기에 대한 정보를 보유하고 컨트롤러이며 어떤 View Controller에서 선택되었는지에 대한 정보가 아닙니다.

질문 : 말해 주시겠습니까? 탭 표시 줄 항목이 표시된보기가 무엇인지 알려줄 정보를 어떻게 얻을 수 있습니까?

답변

2

-tabBarController:shouldSelectViewController:을 탭 모음 컨트롤러 대리인에 구현할 수 있습니다. 새 뷰 컨트롤러가 실제로 선택되기 전에이 메시지가 표시되므로 어떤 뷰 컨트롤러가 인지 현재 알 수 있으므로이 선택되어 아마도 ivar 또는 다른 것으로 저장됩니다. 아마 그 방법으로해야 할 일을 할 수도 있고 아니면 ...didSelectViewController: 메시지가 나올 때까지 기다릴 수도 있지만 이전보기 컨트롤러와 새로운보기 컨트롤러를 모두 알게됩니다.

+1

답장을 보내 주셔서 감사합니다. 현재 탭바에 대한 정보를 알고 있어야합니다. 내 생각에, 당신이 언급 한 최선의 방법은 이전에 선택된 탭바에 대한 정보를 저장하는 것입니다. 알 수 있듯이 대리자 메서드는 이전에 선택한 Tab Bar가 아닌 선택한 Tab Bar에 대한 정보 만 제공 할 수 있습니다. –