自定义导航栏按钮和动作打开新 viewController

Custom navigation bar button and action to open a new viewController

我正在尝试用我自己的图片制作一个新的自定义导航栏按钮。这工作正常,但我试图在按下该按钮时打开一个新的视图控制器。不幸的是,这不起作用,我不知道该怎么做。

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

这就是我现在的代码,它在我的 viewDidLoad 中。我的目的是执行显示细节 Segue 评论。 有人可以帮助我吗?

如果您使用的是 Storyboard,请将手册 segue 添加到您的 ViewController 并为其指定一个标识符。然后你必须在自定义导航栏按钮的 IBAction.

中调用 performSegue
func clickButton(sender: UIBarButtonItem){
    self.performSegue(withIdentifier: "yourSegueIdentifier", sender: nil)
}

您为什么不使用 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