2016-09-14 94 views
0

我有 獲取導航控制器上顯示的按鈕時出現問題。我研究了這一點,我認爲它與導航工作方式有關。從堆棧中推出並彈出。如何找出屬於當前viewController的導航控制器?

這是我有:

我有作爲導航控制器的初始視圖。這個控制器調用幾個視圖,但是我遇到問題的視圖是UICollectionViewController。這通過連接到navigationController的第一個viewController上的按鈕單擊來調用。然後我有一個從UICollectionViewCell到一個新的ViewController的segue設置。所以我假設這是一個二級的NavigationController。

其次,我有一個後退按鈕圖像,顯示在我的導航中而不是文本<後面。

後退按鈕在導航控制器中的所有視圖中都很好顯示,但從第二層segue中調用的視圖除外。

據我所知,通過閱讀關於這個主題的其他文章,這是因爲一個新的導航控制器是在第二級賽格上創建的。

我很好,因爲一切工作正常,但我需要按鈕來顯示第二個navcontroller。

我試圖以編程方式將按鈕添加到與當前視圖關聯的導航控制器。我正在使用此代碼:

override func viewDidLoad() { 
    super.viewDidLoad() 
    var image = UIImage(named: "NavLogo") 
    var back_image = UIImage(named: "BackButton") 
    image = image?.withRenderingMode(UIImageRenderingMode.alwaysOriginal) 
    back_image = back_image?.withRenderingMode(UIImageRenderingMode.alwaysOriginal) 


    self.navigationController?.navigationItem.rightBarButtonItem = UIBarButtonItem(image: image, style: UIBarButtonItemStyle.plain, target: nil, action: nil) 

    self.navigationController?.navigationItem.leftBarButtonItem = UIBarButtonItem(image: back_image, style: UIBarButtonItemStyle.plain, target: nil, action: nil) 
} 

此代碼似乎不會將按鈕添加到當前導航控制器。

該項目是利用斯威夫特3和Xcode的8

回答

2

使用

self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: image, style: UIBarButtonItemStyle.plain, target: nil, action: nil) 

代替

self.navigationController?.navigationItem.rightBarButtonItem = UIBarButtonItem(image: image, style: UIBarButtonItemStyle.plain, target: nil, action: nil) 

這樣做的原因是在此link解釋。

+0

我沒有嘗試過,但都沒有工作。有趣的是,rightBarButtonItem正在顯示。 –

+0

克里,你有正確的答案,所以像我這樣的其他一些骨頭不會忽略這個我拼錯的圖像名稱。謝謝您的幫助。 –

相關問題