установить навигационное фоновое изображение в быстром

Код ниже не работает для меня, может кто-нибудь помочь понять, что не так?

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

self.navigationController.navigationBar.setBackgroundImage(image , forBarMetrics:UIBarMetrics)

Ответ 1

self.navigationController.navigationBar.setBackgroundImage(image, 
                                                   forBarMetrics: .Default)

Ответ 2

В 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
}

Ответ 3

В Swift 3:

Если вы хотите добавить повторяющееся изображение в фоновом режиме, вы можете сделать этот вызов в AppDelegate> didFinishLaunchingWithOptions:

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

Если вы хотите добавить изображение в центр навигационной панели, вам нужно сделать это в ViewController> viewWillAppear:

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

Ответ 4

let navBackgroundImage:UIImage! = UIImage(named: "navbar_bg")

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

Ответ 5

Если вы хотите заполнить изображение на панели навигации, просто используйте код:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: "your_Background_Image_Name")?.resizableImage(withCapInsets: UIEdgeInsets.zero, resizingMode: .stretch), for: .default)

Ответ 6

Для Swift 3:

В AppDelegate.swift:

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

ИЛИ

В viewDidLoad():

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

Ответ 7

Добавьте следующий код в метод didFinishLaunchingWithOptions в AppDelegate.swift:

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

Ответ 8

@benLIVE попросил, как сделать кнопку "Назад", которую я делал, когда я нашел принятый ответ, поэтому я подумал, что я тоже останусь здесь (если немного поздно) b/c, если вы собираетесь заменить навигационную панель значок, вы также можете заменить их всех!

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