私はいくつかのビューコントローラをUINavigationControllerに埋め込んでいます。各viewControllerのナビゲーションバーのタイトルの外観をカスタマイズしたいと思います。 setCustomTitleInNavBar
に電話する最良の方法は何ですか? viewDidLoadで呼び出された場合、selfはまだ初期化されておらず、アプリケーションはクラッシュします。 ViewWillAppearのタイトルは、ユーザーに表示されているときはまだ表示されていません。これが正しい方法でない場合は、別の実装方法をアドバイスしてください。ナビゲーションバーの外観を変更するメソッドを呼び出す必要がありましたか? Swift 3
class CustomMethods {
func setCustomTitleInNavBar(textValue:String, VC:UIViewController) -> UIView {
let titleLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
titleLabel.text = textValue
titleLabel.adjustsFontSizeToFitWidth = true
titleLabel.textAlignment = NSTextAlignment.center
VC.navigationItem.titleView = titleLabel
return VC.navigationItem.titleView!
}
}
//call method on the current view controller to modify the nav bar title
class someViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
setCustomTitleInNavBar(textValue: "Where to come?", VC: self)
}
}
あなたは 'navBar'のタイトルを設定するのに役立ちます方法とプロトコルを作成します。それぞれのVCにプロトコルを実装し、メソッドを 'viewDidLoad'で呼び出します。このメソッドにデフォルトの実装を追加して、デフォルトのタイトルを設定することができます。 – BoilingLime