いくつかのナビゲーション項目と明らかにタイトルを除いて、異なるビューコントローラのすべてのナビゲーションコントローラで同様のプロパティを使用します。swift - UINavigationController拡張機能が動作しない
私はそれを呼び出すことができるように計画して、私のデフォルトを設定しました。しかし、何もしません。私はSetDefaultsを呼び出すときではなく、実際のクラスに配置するだけで、コードは動作します。
拡張:navigationcontrollerを持つクラスからSETDEFAULTSへ
extension UINavigationController {
func setDefaults(titleText: String){
let appDel = UIApplication.sharedApplication().delegate as! AppDelegate
//Set title label
let label = UILabel()
label.font = UIFont(name: appDel.regularDefaultFont, size: 16)
label.text = titleText
label.kern(1.0)
label.sizeToFit()
self.navigationItem.titleView = label
//Set white background tint color
self.navigationBar.barTintColor = UIColor.whiteColor()
//Set navigation bar bottom line
let bottomBorderRect = CGRect(x: 0, y: UIScreen.mainScreen().bounds.height, width: UIScreen.mainScreen().bounds.width, height: 1)
let bottomBorderView = UIView(frame: bottomBorderRect)
bottomBorderView.backgroundColor = UIColor(r: 250, g: 250, b: 250)
navigationBar.addSubview(bottomBorderView)
}
}
コール:他の または単に1つのビューコントローラを接続しているときにshow
にSegue
タイプを選択する必要があり
self.navigationController.SetDefaults("Login")
あなたはあなたの拡張機能にブレークポイントを設定し、それに達していますかどうかを確認することができます...水の流れのように動作しますか? – kabiroberai
実際に正しいナビゲーションコントローラで 'setDefaults'を呼び出すことを確認してください。 UISplitViewControllerを使用している場合は、ビューコントローラ自身のナビゲーションコントローラのプロパティが画面上のものではない可能性があります。 – Luke
kabiroberai、私はそれを試みました。 @ルーク私はちょうど示したビューコントローラでsetDefaultsを呼び出しています。これは正しいです? View Controllerを表示するために使用するコードを見るには、以下のレスポンスへの私のコメントをチェックしてください。 – Walker