2015-06-22 117 views
0

我有這個透明的導航欄,我可以添加一個自定義圖標(下面的代碼)。然而,它似乎沒有迴應點擊,任何人都有任何想法,爲什麼這可能會導致?無法點擊自定義添加UIBarButtonItem

我在一個UINavigationController裏面加入了一個UIViewController。

var button: UIButton = UIButton() 
    button.setImage(UIImage(named: "customBack"), forState: .Normal) 
    button.frame = CGRectMake(0, 0, 40, 40) 
    button.imageEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10) 
    button.targetForAction("doAction:", withSender: button) 
    button.backgroundColor = UIColor.brownColor() 

    var leftItem:UIBarButtonItem = UIBarButtonItem() 
    leftItem.customView = button 
    self.navigationItem.leftBarButtonItem = leftItem 
    self.navigationItem.leftBarButtonItem!.action = "doAction:" 

    self.navigationController!.navigationItem.leftBarButtonItem = leftItem 

我知道我不應該自己添加項目,但在這種情況下,它是必要的。在加載視圖或w/e之前,圖標即時添加。

+0

檢查操作方法是否定義爲func doActi on(sender:UIBarButtonItem){}並在其中添加一個printf。也許你必須隱藏默認的後退按鈕self.navigationItem.hidesBackButton = true –

+0

我有一個斷點內,這會做得很好,但我發現已經有什麼錯在答案。 –

回答

0

始終只是發表後,我發現:

我用

button.targetForAction("doAction:", withSender: button) 

雖然我應該做的事情:

button.addTarget(self, action: "doAction:", forControlEvents: .TouchUpInside) 
1

要嘗試...

var ysBackButton:UIButton = UIButton(frame:CGRectMake(0, 0, kNavBtnSize, kNavBtnSize)) 
ysBackButton.setImage(UIImage(named: kBack), forState: UIControlState.Normal) 
ysBackButton.addTarget(self, action: Selector("backButtonAction"), forControlEvents:UIControlEvents.TouchUpInside) 
var leftBarButton:UIBarButtonItem = UIBarButtonItem(customView: ysBackButton) 
self.navigationItem.leftBarButtonItem = leftBarButton