前提・実現したいこと
アプリを立ち上げる際にnavigationbarに対する種々の設定変更を実施したいと考えています。
カスタムクラスを実装してそこに設定に必要な引数を渡して結果を反映させようとしています。
発生している問題
・アプリケーションを立ち上げる際に、viewWillAppear(or viewDidLoad)内部で
カスタムクラス"NavigationBarSetting.swift"を作成し、設定関連の引数を渡すことで、
navigationbarの表示・非表示、文字の大きさ、色等を設定したい。
ビルドは成功するが、設定した内容が呼び出したnavigationbarに反映されない。
"呼び出したカスタムクラスが使われていない"という警告メッセージが出てしまう。
戻り値がないためだと思われるが、複数の引数を渡しているため、何を戻り値にすべきかが調べてもわかりませんでした。
いろいろ調べてみているのですが、どうしても解決できず、今回質問させていただくことにしました。アドバイスをいただけると助かります。
該当のソースコード
カスタムクラスの記述
import UIKit
class NavigationBarSetting: UIViewController {
func navigationBarSetting(hideBar:Bool, title:String, largeBar:Bool, fontColor:String, fontSize:CGFloat) { //そもそもnavigatetionBarを隠すかどうかを設定 navigationController?.setNavigationBarHidden(hideBar, animated: false) print("1") //navigationbarのタイトル設定 navigationItem.title = title //表示の大きさ、自動表示、文字の色、ライン表示、背景表示などを設定 navigationController?.navigationBar.prefersLargeTitles = largeBar navigationItem.largeTitleDisplayMode = .automatic //表示する文字がlargetiltle(小)の時の設定 navigationController?.navigationBar.titleTextAttributes = [ .foregroundColor: "UIColor.(fontColor)"] //表示する文字がlargetiltle(大)の時の設定 navigationController?.navigationBar.largeTitleTextAttributes = [ .foregroundColor: "UIColor.(fontColor)", .font: UIFont.boldSystemFont(ofSize: fontSize)]
}
}
呼び出し元のプログラム記述
//Viewが読み込まれた後に実行する処理内容
override func viewWillAppear(_ animated: Bool) {
//navigationBarの設定クラスを読み込む
let sbSetting = NavigationBarSetting()
sbSetting.navigationBarSetting(hideBar: true, title: "test", largeBar: true, fontColor: "red", fontSize: 25.0)
}
試したこと
カスタムクラスを使わないで、カスタムクラスで記述した中身をクラスの呼び出し元に直接記載した場合ば意図した通りにnavigationbarが変更された。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。