설명 및 의도
- 웹뷰를 사용하는 탭에서 해당 탭바 아이템을 선택할 경우 웹뷰의 첫 화면으로 이동하고자 함
예시
- 네이버 뉴스 포탈화면에서 기사(아티클)화면으로 이동한 뒤 다시 탭 아이템을 선택할 경우 뉴스 포탈로 이동
- 다른 탭에서 넘어올 때에는 뉴스 포털화면이 아닌 읽고 있던 페이지로 이동
방법
- 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