[ios] TabBarItem - isEnabled - false

3710 단어 iOSiOS

탭바 아이템을 탭하면,

  • 해당하는 뷰컨트롤러로 항상 이동한다
  • 하지만 특정 탭바 아이템을 눌렀을 때, 이동시키지 않는 버튼으로 만들고 싶다

didSelet

UITabBarControllerdidSelet 메서드를 사용하여
특정 탭바아이템이 눌렸는지 판단한다

var isUploadTabBarEnabled = true

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
    if item.image == Icon.plus.image { // 특정 탭바 아이템이 눌렸다면
        let previousIndex = self.selectedIndex // 이전에 눌려있는 뷰컨의 인덱스 값
        self.selectedIndex = previousIndex // 특정 뷰컨으로 넘어가지 않고 기존에 있던 뷰컨으로 이동(그냥 안움직이는 것처럼 보임)
        isUploadTabBarEnabled = false // 특정 탭바아이템을 누르면 false
    } else {
    	isUploadTabBarEnabled = true // 눌려도 되는 탭바 아이템을 누르면 true
    }
}

UITabBarControllerDelegate

  • UITabBarControllerDelegateshouldSelect메서드를 사용하여 눌려도 되면 true, 눌리지 않게 하려면 false
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
	return isUploadTabBarEnabled
}

결과

  • 예를 들어, 탭바 아이템을 Alert을 present하는 버튼으로 사용하려면 didSelect에 기능을 추가하면 된다

좋은 웹페이지 즐겨찾기