performSegueWithIdentifier 未按预期显示视图控制器

performSegueWithIdentifier not showing view controller as expected

我以编程方式创建了一个名为 'menu' 的按钮,该按钮已更改为名为 'menuButton' 的 UIBarButtonItem。单击按钮时,我想使用 performSegueWithIdentifier 调用 segue。

Universal.swift

struct UniversalStatic {
    static let data = Universal()
}

public class Universal {
    let menuButton : UIBarButtonItem
    let menu : UIButton

init(){
    menu =  UIButton(type: UIButtonType.Custom)
    menu.setImage(UIImage(named: "menu.png"), forState: UIControlState.Normal)
    menu.frame = CGRectMake(0, 0, 25, 20)
    menuButton = UIBarButtonItem(customView: menu)
}

HomeViewController.swift

class HomeViewController: UIViewController {

    func goToMenuVC() {
    self.performSegueWithIdentifier("test", sender: self)
    }

    override func performSegueWithIdentifier(identifier: String, sender: AnyObject?) {
        print("called")
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        UniversalStatic.data.menu.addTarget(self, action: "goToMenuVC", forControlEvents: UIControlEvents.TouchUpInside)
        self.navigationItem.leftBarButtonItem = UniversalStatic.data.menuButton
    }

func viewDidAppear() {
    UniversalStatic.data.menu.addTarget(self, action: "goToMenuVC", forControlEvents: UIControlEvents.TouchUpInside)
    self.navigationItem.leftBarButtonItem = UniversalStatic.data.menuButton
}

打印语句已打印,所以我知道 'performSegueWithIdentifier' 已被调用,但显示转场已被执行。

我附上了 segue 标识符的屏幕截图。

尝试添加:

super.performSegueWithIdentifier(identifier, sender: sender)

在你的performSegueWithIdentifier方法中。