2017-07-23 51 views
1

我試圖用我自己的圖像做一個新的自定義導航欄按鈕。這工作正常,但我試圖打開一個新的視圖控制器,當我按下該按鈕。不幸的是,這並不奏效,我不知道該怎麼做。自定義導航欄按鈕和動作來打開一個新的viewController

let testUIBarButtonItem = UIBarButtonItem(image: UIImage(named: "Image.png"), style: .plain, target: self, action: nil) 
self.navigationItem.rightBarButtonItem = testUIBarButtonItem 
func clickButton(sender: UIBarButtonItem){} 

這是我現在的代碼,它在我的viewDidLoad裏面。我的意圖是執行一個節目細節賽格評論。 有人可以幫我嗎?

回答

0

如果您使用了Storyboard,請在您的ViewController添加一個手冊segue,併爲它指定標誌。然後,您必須在自定義導航欄按鈕IBAction中撥打performSegue

func clickButton(sender: UIBarButtonItem){ 
    self.performSegue(withIdentifier: "yourSegueIdentifier", sender: nil) 
} 
+0

從來就做了一個手工賽格瑞但它仍然不要打開新的視圖控制器 'let testUIBarButtonItem = UIBarButtonItem(image:UIImage(named:「Image.png」),style:.plain,target:self,action:nil) self.navigationItem.rightBarButtonItem = testUIBarButtonItem func clickButton(sender:UIBarButtonItem){ self.performSegue(withIdentifier:「idPage3」,sender:nil)}' – tobias

+0

你有什麼錯誤嗎?你是否稱爲IBAction? –

+0

我沒有得到任何錯誤,我真的認爲我的行動不被稱爲。我按下那個按鈕什麼也沒有發生。我忘記了什麼嗎?全部都在viewDidLoad中是否正確? – tobias

1

你爲什麼不只是使用一個UIButton並將其指定爲欄按鈕項目作爲在這個線程建議:

UIBarButtonItem: target-action not working?

let button = UIButton(type: .Custom) 
if let image = UIImage(named:"icon-menu.png") { 
    button.setImage(image, forState: .Normal) 
} 
button.frame = CGRectMake(0.0, 0.0, 30.0, 30.0) 
button.addTarget(self, action: #selector(MyClass.myMethod), forControlEvents: .TouchUpInside) 
let barButton = UIBarButtonItem(customView: button) 
navigationItem.leftBarButtonItem = barButton