![](/img/trans.png)
[英]Set Image Underlay of Transparent Navigation Bar and Status Bar in Swift iOS 8
[英]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.