2012-03-31 2 views
2

현재 모든 뷰 컨트롤러가 연결된 4 개의 항목이있는 UITabBarController가 있습니다. 새보기 컨트롤러로 이동하지 않고 Safari에서 웹 사이트를 시작하는 다섯 번째 탭 표시 줄 항목을 추가하고 싶습니다. 기본적으로 UIButton처럼 작동합니다. UITabBarController에서 웹 사이트 열기

그래서 행동은 다음과 같습니다

사용자는 1
사용자가 탭 (5)를 클릭 탭에 (탭 5 일순간 파란색으로 변합니다).
보기가 변경되지 않습니다.
웹 사이트
사용자가 응용 프로그램에 반환, 그들은 여전히 ​​탭 1 (탭 1이 파란색)에있는

모든 아이디어 (나는이 부분을 어떻게 해야할지) 사파리에서 열립니다?

tabBarController.viewControllers = localControllersArray; 
[localControllersArray release];  
[self.window setRootViewController:tabBarController]; 
[tabBarController release]; 

답변

2

당신은 UITTabBarController 대리자 속성이 방법을 알고 :

현재 내 UITabBarController가이 같은 설정은 (여기서 localControllerArray 4 UINavigationControllers의 배열입니다)입니까? UITabBarControllerDelegate 프로토콜을 구현하는 개체를 만들고 위임자로 설정합니다. 그런 다음 탭 중 하나를 선택하면 위임자의 tabBarController:didSelectViewController:이 호출됩니다. 그것에서 5 번째 탭이 두드려 졌는지 확인할 수 있습니다. 이 경우 tabbarcontroller의 selectedIndex 속성을 원하는 값으로 설정하기 만하면됩니다. 그게 전부 야.

추신 : 실제로는 tabBarController:shouldSelectViewController: 으로 전화하면보기가 전환되지 않습니다.

+0

매력처럼 작동합니다. 감사. – Joel

0
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController; 
switch(mytabbar.selectedIndex) 
{ 
case 0: 
    [imageView1 setImage:[UIImage imageNamed:@"Tab1_sel.png"]]; 
    [imageView2 setImage:[UIImage imageNamed:@"Tab2.png"]]; 
    [imageView3 setImage:[UIImage imageNamed:@"Tab3.png"]]; 
    [imageView4 setImage:[UIImage imageNamed:@"Tab4.png"]]; 
    [imageView5 setImage:[UIImage imageNamed:@"Tab5.png"]]; 
    break; 

case 1: 

나는 그것을 위해 노력하고 있습니다 ... 그게 appdelegate 방법에 넣어.

관련 문제