web-dev-qa-db-fra.com

définir l'image d'arrière-plan navigationBar dans swift

Le code ci-dessous ne fonctionne pas pour moi, quelqu'un peut-il aider à comprendre ce qui ne va pas?

var image = UIImage(named: "10384605_10152519403846670_5189785375955620548_n.jpg") as UIImage

self.navigationController.navigationBar.setBackgroundImage(image , forBarMetrics:UIBarMetrics)
14
Rohit
self.navigationController.navigationBar.setBackgroundImage(image, 
                                                   forBarMetrics: .Default)
33
B.S.

Dans AppDelegate.Swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.

    //Image Background Navigation Bar
    let navBackgroundImage:UIImage! = UIImage(named: "backgroundNB.png")
    UINavigationBar.appearance().setBackgroundImage(navBackgroundImage, forBarMetrics: .Default)

    return true
}
16
William

Dans Swift:

Si vous souhaitez ajouter une image répétée en arrière-plan, vous pouvez effectuer cet appel dans AppDelegate> didFinishLaunchingWithOptions:

let image = UIImage(named: "imageNameInAsset")
UINavigationBar.appearance().setBackgroundImage(image, for: .default)

Si vous souhaitez ajouter une image au centre de la barre de navigation, vous devez le faire dans ViewController> viewWillAppear:

let titleView = UIImageView(image: UIImage(named: "imageNameInAsset"))
self.navigationItem.titleView = titleView
14
Daniel Nord

Si vous souhaitez remplir l'image dans la barre de navigation, utilisez simplement le code:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: "your_Background_Image_Name")?.resizableImage(withCapInsets: UIEdgeInsets.zero, resizingMode: .stretch), for: .default)
7
Ram Madhavan
let navBackgroundImage:UIImage! = UIImage(named: "navbar_bg")

[UINavigationBar .appearance().setBackgroundImage(navBackgroundImage, forBarMetrics:.Default)]
4
Philip Jang

Pour Swift:

Dans AppDelegate.Swift:

UINavigationBar.appearance().setBackgroundImage(UIImage(named:"pattern.png"),
                                                                for: .default)

OU

Dans viewDidLoad ():

self.navigationController?.navigationBar.setBackgroundImage(UIImage(named:"pattern.png"),
     for: .default)
2
Pragnesh Vitthani

@benLIVE a demandé comment faire un bouton de retour, ce que je faisais quand j'ai trouvé la réponse acceptée, alors j'ai pensé que je laisserais cela ici aussi (si un peu en retard) b/c si vous allez remplacer une barre de navigation icône, vous pouvez tout aussi bien les remplacer!

    let cubeIcon = UIImageView(image: yourImage)
    cubeIcon.contentMode = .scaleAspectFit
    self.navigationItem.backBarButtonItem?.image = cubeIcon.image
0
agrippa

définir l'image d'arrière-plan dans le contrôleur de navigation

self.navigationController?.navigationBar .setBackgroundImage(UIImage(named: "cricket"), for: .default)
0
CSE 1994

si vous mettez la barre de navigation cachée pour l'application, vous devez la montrer sur l'affichage a été chargée ou apparaît par:

    override func viewWillAppear(_ animated: Bool) {
    print("\n Debugger : View will appear called")
    self.navigationController?.isNavigationBarHidden =  false
}

si vous voulez que votre barre de navigation ne s'affiche que dans un contrôleur de vue spécifique, vous devez faire disparaître la barre de navigation en:

override func viewDidDisappear(_ animated: Bool) {
    print("\n Debugger : View did disapper called")

     self.navigationController?.isNavigationBarHidden =  true
}

Méthode de configuration de la barre de navigation

private func navigationBarSetup(){

    print("\n Debugger : Navigation Bar setup method called")

    self.navigationController!.navigationBar.setBackgroundImage(UIImage(named: "your image name "), for: .default)
    let backButton = UIBarButtonItem(image: UIImage(named: "your Image name"), style: .plain, target: self, action: #selector(Your selector method))
    backButton.tintColor = UIColor.white
    self.navigationItem.leftBarButtonItem = backButton
    let rightButton = UIBarButtonItem(image: UIImage(named: "your Image name"), style: .plain, target: self, action: #selector(Your selector method))
    backButton.tintColor = UIColor.white
    self.navigationItem.rightBarButtonItem = rightButton

}
0
CS- Argus

Ajoutez le code suivant à la méthode didFinishLaunchingWithOptions dans AppDelegate.Swift:

    if let myImage = UIImage(named: "navBarImage.jpg"){
        UINavigationBar.appearance().setBackgroundImage(myImage, for: .default)
    }
0
KSR