2017-07-19 14 views
0

私の問題はnavigationControllerであり、ルールは適用されません。navigationControllerのルールはViewControllerで機能しません

enter image description here

override func viewDidLoad() { 
    super.viewDidLoad() 
    navigationBarColor() 
} 

func navigationBarColor() { 
     navigationController?.navigationBar.barTintColor = UIColor(red:0.91, green:0.04, blue:0.51, alpha:1.0) 
     navigationController?.navigationBar.shadowImage = UIImage() 
     navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) 
    } 

ここでの結果だ - 色は、私が何をすべきが

enter image description here

ではないでしょうか?

+0

この方法を使用することができますプロファイルでいるのviewDidLoadですか? – ppinho

+5

"ルールは適用されません" - これは私が長い間見た問題の中で最も曖昧な記述です。何がうまくいかない? –

+0

最新のアップデートを確認 – sinusGob

答えて

0

コードがスタイルプロパティを正しく設定しているように見えます。 navigationControllerはゼロである可能性があります。

より良いアプローチは、カスタムナビゲーションコントローラサブクラスを使用して、インターフェイスビルダーのナビゲーションコントローラに接続することです。

open class NavigationController: UINavigationController { 
    open override func viewDidLoad() { 
     super.viewDidLoad() 
     navigationBar.barTintColor = UIColor.blue 
    } 
} 
0

最初のあなたはbartintColorを設定し、その 後、あなたは、ナビゲーションバーの「鮮明な画像」を設定:)もちろんの それは透明です。

コールコントローラは

に登場するだろうと、このnavigationBarが変更されます。

あなたには、いくつかの色の画像を必要とするか、またはコードでそれを作成します。このような(例えば)

extension UIImage { 

class func imageWithColor(_ color: UIColor) -> UIImage { 
    let rect = CGRect(origin: CGPoint.zero, size: CGSize(width: 1.0, height: 1.0)) 
    UIGraphicsBeginImageContext(rect.size); 

    guard let context = UIGraphicsGetCurrentContext() else { 
     UIGraphicsEndImageContext() 
     return UIImage() 
    } 

    context.setFillColor(color.cgColor); 
    context.fill(rect); 

    let image = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return image ?? UIImage() 
    } 
} 

とナビゲーションバーに画像を設定します

0

質問に基づいて何を求めているのかよく分かりませんが、ナビゲーションバーの色を変更しようとしている場合は、変更することをお勧めします :

navigationController?.navigationBar.barTintColor = UIColor(red:0.91, green:0.04, blue:0.51, alpha:1.0) 

へ:

navigationController?.navigationBar.backgroundColor = UIColor(red:0.91, green:0.04, blue:0.51, alpha:1.0) 

これは、背景色だけではなく色合い色として色を追加します。

0

使用このコード

import Foundation 
    import Swift 

    extension UINavigationController 
    { 
     func setMainTopNavigationBarAttribute() -> Void 
     { 
      self.navigationBar.shadowImage = UIImage() 
      self.navigationBar.setBackgroundImage(UIImage(), for: .default) 
      self.navigationBar.isTranslucent = false 
      self.navigationBar.tintColor = UIColor.white 
      self.navigationBar.backgroundColor = UIColor.white 
     } 
    } 

あなたは

let navigationController = UIStoryboard.user.instantiateViewController(withIdentifier: "MMNavigationController") as! UINavigationController 
navigationController.setMainTopNavigationBarAttribute() 
0
You just change this two line in your function 


func navigationBarColor() { 

navigationController?.navigationBar.barTintColor = UIColor(red:0.91, green:0.04, blue:0.51, alpha:1.0) 

//change this two line in your function 
navigationController?.navigationBar.shadowImage = UIImage.init(named: "") 
     navigationController?.navigationBar.setBackgroundImage(UIImage.init(named: ""), for: .default) 
    } 
関連する問題