2019년 9월 15일 일요일

선택된 탭에서 해당 탭바 아이템 클릭하여 기능 구현


설명 및 의도 
  • 웹뷰를 사용하는 탭에서 해당 탭바 아이템을 선택할 경우 웹뷰의 첫 화면으로 이동하고자 함 
예시 
  • 네이버 뉴스 포탈화면에서 기사(아티클)화면으로 이동한 뒤 다시 탭 아이템을 선택할 경우 뉴스 포탈로 이동 
  • 다른 탭에서 넘어올 때에는 뉴스 포털화면이 아닌 읽고 있던 페이지로 이동 
방법 
  • isTapActivated 불리언 변수 생성 
  • 다른 탭으로 이동하거나, 탭이 선택될 때 불리언 값 변경 
  • tabbarControllerDelegate 설정 
과정
  • var isTapActivated = true 
  • viewdidDisappear(_:)  에서 isTapActivated 값을 false , viewdidAppear(_:) 에서 isTapActivated 값을 true 로 변경 
  • if tabBarController.selectedViewController == self && isTapActivated { initWebView() }
이슈 및 추가확인사항 
  • 해당 뷰 컨트롤러에 네비게이션 컨트롤러를 임베드할경우 작동하지 않음
  • viewDidDisappear(_:) 가 아닌 viewWillDisappear(_:)에서 isTapActivated 값 변경 
API Reference 
  • Protocol UITabBarControllerDelegate
  • func tabBarController(UITabBarController, shouldSelcet: UIViewController) -> Bool
  • func tabBarController(UITabBarController, didSelect: UIViewController) -> Bool