簡體   English   中英

在Swift的導航欄中設置圖像

[英]Set Image In Navigation Bar In Swift

我試圖在整個應用程序的導航欄右側放置一個圖標。 除了主屏幕外,這里到處都是(盡管也很好,因為我將其隱藏在該視圖控制器上):頂部的表格視圖控制器,圖像最右側的地圖視圖和表格視圖控制器下面。

該代碼神秘地將圖標設置在一個視圖控制器(收藏夾視圖控制器,左上方)上的導航欄中央 ,該視圖控制器是一個表視圖控制器,與嵌入在導航控制器中的UIViewController隔離:

let yelpIcon = UIBarButtonItem(image: UIImage(named: "Yelp_trademark_RGB_outline"), style: .plain, target: self, action: nil)
self.navigationController!.navigationItem.rightBarButtonItem  = yelpIcon

在此處輸入圖片說明

我的Map和TableViewControllers(最右邊)嵌入在導航控制器中,每個控制器都嵌入在標簽欄控制器中。 我無法通過在Interface Builder中創建導航項並設置其圖像,或者通過編程方式來顯示該圖像。

在此處輸入圖片說明

強烈建議在SO上使用此代碼,但是在嘗試時沒有任何結果(我將操作設置為nil,因為我不需要執行任何操作):

let button1 = UIBarButtonItem(image: UIImage(named: "myimage"), style: .plain, target: self, action: Selector("action"))
self.navigationItem.rightBarButtonItem = button1

注意:導航欄是用黑色的barTintColor樣式化的,這沒有什么區別,但我想我願意分享。 圖片是我的素材資源文件夾中的PNG。 在使用調試視圖層次結構時,我遇到了這兩個似乎阻止了我的圖像出現的兩層(盡管他們沒有使用“后退”按鈕執行此操作)。

在此處輸入圖片說明

實例地址0x7fa8b7b10aa0是一個UIVisualEffectSubView。 我不確定這是否是問題,但我也無法弄清楚如何將其關閉。 我將嵌入它的導航控制器的導航欄中的視圖色調顏色更改為透明,並關閉了不透明度。 兩者都不起作用。

如何使導航欄右側的圖像出現?

請找到以下解決方案。

像這樣和方法創建UIViewController的擴展,

extension UIViewController {
    func setNavigationItem() {
        let imageView = UIImageView(image: UIImage(named: "yelp"))
        let item = UIBarButtonItem(customView: imageView)
        self.navigationItem.rightBarButtonItem = item
    }
}

對於要在其中顯示rightBarButton項的ViewController,在viewDidLoad()方法中,添加以下行,

override func viewDidLoad() {
    super.viewDidLoad()
    self.setNavigationItem()
}

請刪除里面的UITabBarController UINavigationController的的,初始的UINavigationController將處理整個應用程序的所有導航。

如有任何疑問,請通知我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM