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)
self.navigationController.navigationBar.setBackgroundImage(image,
forBarMetrics: .Default)
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
}
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
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)
let navBackgroundImage:UIImage! = UIImage(named: "navbar_bg")
[UINavigationBar .appearance().setBackgroundImage(navBackgroundImage, forBarMetrics:.Default)]
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)
@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
définir l'image d'arrière-plan dans le contrôleur de navigation
self.navigationController?.navigationBar .setBackgroundImage(UIImage(named: "cricket"), for: .default)
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
}
Ajoutez le code suivant à la méthode didFinishLaunchingWithOptions dans AppDelegate.Swift:
if let myImage = UIImage(named: "navBarImage.jpg"){
UINavigationBar.appearance().setBackgroundImage(myImage, for: .default)
}