NavigationBar의 뒤로 버튼의 문장을 몇 줄로 일괄 설정

1607 단어 swift3

전제



 NavigationBar의 뒤로 버튼에 설정되어 있는 문언, 디폴트라고 단순히 이전 화면의 타이틀의 문언을 표시하거나, 문자수에 따라서는 생략되어 마음대로 "뒤로"로 설정되기도 합니다.
화면에 의해 외형이 장미 붙기 때문에, 차라리 모두 "뒤로"나 "Back"로 일괄 설정하고 싶은 경우는 많습니다.
다만, 그 때문에 모든 ViewController에서 BaseViewController를 계승해 운운하는 것은 매우 귀찮습니다.
거기서 편하게 설정하는 방법이 있는지 조사했습니다.

코드



UINavigationController의 Extension에서 일괄 설정할 수 있습니다.
아래의 코드를 프로젝트중의 어딘가에 쓰는 것만으로, 모든 NavigationController 이하의 ViewController로 유무를 말하지 않고 뒤로 버튼의 문언을 덧쓰기됩니다.
extension UINavigationController {
    override open func viewDidLayoutSubviews() {
        let backButton = UIBarButtonItem()
        backButton.title = "もどる"
        self.navigationBar.topItem?.backBarButtonItem = backButton
    }
}

이미지






  • 보충 1
  • viewWillLayoutSubviews의 override에서는 NavigationController의 RootVC에서만 문언 설정이 적용되지 않는 경우가 있었습니다.
  • 보충 2

  • 자세하게는 실망했습니다만, 위와 같은 코드는 Apple의 가이드라인으로부터 일탈하고 있는 것이 아닌가, 라고 하는 지적이 코드 리뷰였습니다(단지 명확하게 부정하는 근거도 없었다고 하는 것입니다). 사용할 때는 자기 책임으로. .

    좋은 웹페이지 즐겨찾기