2016-12-22 1 views
2

3 개의 탭 표시 줄 단추가있는 탭 표시 줄 컨트롤러가 있습니다. 이 순간은 다음과 같습니다탭 표시 줄 단추에서보기 컨트롤러를 표시하는 방법

class CustomTabBarController: UITabBarController { 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let firstTabBarController = FirstController() 
    let firstTabBarNavigationController = UINavigationController(rootViewController: firstTabBarController) 
    firstTabBarNavigationController.tabBarItem.title = "First Tab" 

    let secondTabBarController = SecondController() 
    let secondTabBarNavigationController = UINavigationController(rootViewController: secondTabBarController) 
    secondTabBarController.tabBarItem.title = "Second Tab" 

    let thirdTabBarController = ThirdController() 
    let thirdTabBarNavigationController = UINavigationController(rootViewController: thirdTabBarController) 
    thirdTabBarNavigationController.tabBarItem.title = "Third Tab" 

    viewControllers = [firstTabBarNavigationController, secondTabBarNavigationController, thirdTabBarNavigationController] 

} 
} 

을 지금의 코드와 위의 모든 뷰 컨트롤러가 나는 중간 탭 표시 줄 단추를 원하는 CustomTabBarController

안에 앉아있다는 secondTabBarNavigationController은을 제시 보기 컨트롤러, 특히 UIImagePickerController 사용자가 Instagram과 유사한 이미지를 선택할 수 있습니다.

어떻게 달성 할 수 있습니까? 스토리 보드를 사용하지 않습니다.

+0

왜 'self.delegate' 대신'tabBarController.delegate' 속성을 설정합니까? 선택적인'super tabBarController' 델리게이트를 설정하려고하기 때문에 당신이하는 일이 잘못되었습니다. 편집하고 작동합니다 –

+0

아하네, 알았어. 루카 감사합니다, 완벽하게 작동합니다. – luke

답변

5

tabBar 컨트롤러의 func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool 대리자 메소드를 구현하기 만하면됩니다.

원하는 탭을 누르면 컨트롤러가 나타나고 false을 반환하고 그렇지 않으면 true을 반환하십시오.

UIViewController 인스턴스도 탭에 연결합니다.

Ex.

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { 
    if (tab for this controller is equal to the expected tab) { 
     // present you controller 
     return false 
    } else { 
     return true 
    } 
} 
+0

어떤 탭을 눌렀는지 어떻게 확인합니까? – luke

+0

그건 너에 관한거야. 특정 'UIViewController' 인스턴스의 해당 탭이 무엇인지 확인할 수 있어야합니다. 적어도 UITabBarController 패턴이 기대하는 것입니다. –

+0

나는 조금 혼란스러워. 나는'tabFor (viewController) == .cameraTab'가 의미하는 바가 무엇인지 전혀 모른다. – luke

관련 문제