2012-08-27 4 views
1

탭 모음과 탐색 기능이 포함 된 iOS 애플리케이션을 개발 중입니다. 첫 번째 탭에서 버튼을 누르면 네비게이션 컨트롤러로 두 번째 탭을로드하고 다음보기로 밀어 넣기를 원합니다. 누군가가이 일을 도울 수 있습니까?프로그래밍 방식으로 iOS 변경 탭

답변

1

첫 번째 탭의 버튼에 의해, 프로그램 선택 탭 탭 컨트롤러에 메시지를 보낼 수 있습니다 두 번째 탭을 선택하라는 메시지가 나타납니다. 그런 다음 네비게이션 컨트롤러 인 두 번째 탭의 rootView에 메시지를 보내고 클래스에 첫 번째 버튼을 사용하여 생성 한 객체를 푸시하라는 메시지를 보냅니다.

1

설정 selectedViewController : 예를 들어

self.tabBarController.selectedViewController = viewControllerYouWant; 

,

self.tabBarController.selectedViewController 
    = [self.tabBarController.viewControllers objectAtIndex:2]; 
3

당신은

self.tabBarController.selectedIndex=1; 
1

여기에 누구에게나 Swift 해결책이 있습니다. 나는 같은 일을 그냥 탭 여기에 4의 또 다른 중첩 된 뷰 컨트롤러에 탭 2에 중첩 된 뷰 컨트롤러에서 가야 할 내가 달성하는 방법입니다했다고 :

func goToHelpViewController(){ 
    dispatch_async(dispatch_get_main_queue(), {() -> Void in 
     let desiredIndex:Int = 3 
     self.tabBarController?.selectedIndex = desiredIndex 
     let settingsStoryBoard = UIStoryboard(name: "SettingsSection", bundle: nil) 
     let helpViewController = settingsStoryBoard.instantiateViewControllerWithIdentifier("HelpViewController") as! HelpViewController 
     let settingsRootNavigationController = self.tabBarController?.viewControllers![desiredIndex] as! UINavigationController 

     settingsRootNavigationController.popToRootViewControllerAnimated(false) 
     settingsRootNavigationController.pushViewController(helpViewController, animated: true) 
    }) 
} 

스위프트 3.0

func goToHelpViewController(){ 
    DispatchQueue.main.async(execute: {() -> Void in 
     let desiredIndex:Int = 1 
     self.tabBarController?.selectedIndex = desiredIndex 
     let settingsStoryBoard = UIStoryboard(name: "SettingsSection", bundle: nil) 
     let helpViewController = settingsStoryBoard.instantiateViewController(withIdentifier: "HelpViewController") as! HelpViewController 
     let settingsRootNavigationController = self.tabBarController?.viewControllers![desiredIndex] as! UINavigationController 

     settingsRootNavigationController.popToRootViewController(animated: false) 
     settingsRootNavigationController.pushViewController(helpViewController, animated: true) 
    }) 
} 
관련 문제