Ios 按钮功能只能工作一次

Ios 按钮功能只能工作一次,ios,swift,Ios,Swift,我正在制作一个带有主视图控制器和菜单按钮的应用程序。单击该按钮,会出现另一个视图控制器作为侧菜单,然后用户可以选择返回到上一个主视图控制器。但是,此时菜单按钮不再工作 主视图控制器的代码在此处(不是容器视图控制器): 您必须使用bool标志来跟踪菜单的打开/折叠,如下所示: @objc protocol CenterViewControllerDelegate { optional func toggleLeftPanel() optional func collapseSide

我正在制作一个带有主视图控制器和菜单按钮的应用程序。单击该按钮,会出现另一个视图控制器作为侧菜单,然后用户可以选择返回到上一个主视图控制器。但是,此时菜单按钮不再工作

主视图控制器的代码在此处(不是容器视图控制器):


您必须使用bool标志来跟踪菜单的打开/折叠,如下所示:

@objc
protocol CenterViewControllerDelegate {
    optional func toggleLeftPanel()
    optional func collapseSidePanels()
}

class CenterViewController: UIViewController {
    var _isMenuOpen = false
    @IBOutlet weak var titleLabel: UILabel!
    var delegate: CenterViewControllerDelegate?
    @IBAction func MenuTapped(sender: AnyObject) {
        if _isMenuOpen{
            delegate?.toggleLeftPanel?()
            _isMenuOpen = true
        }
        else{
            delegate?.collapseSidePanels?()
            _isMenuOpen = false
        }
    }
    // MARK: Button actions
}

希望这能对您有所帮助。

您能添加ToggleftPanel()函数的代码实现吗?您可能有一个标志来检查侧菜单是否打开/折叠,因此基于ToggleftPanel()函数实现中的该标志,您可以调用collapseSidePanels()函数
@objc
protocol CenterViewControllerDelegate {
    optional func toggleLeftPanel()
    optional func collapseSidePanels()
}

class CenterViewController: UIViewController {
    var _isMenuOpen = false
    @IBOutlet weak var titleLabel: UILabel!
    var delegate: CenterViewControllerDelegate?
    @IBAction func MenuTapped(sender: AnyObject) {
        if _isMenuOpen{
            delegate?.toggleLeftPanel?()
            _isMenuOpen = true
        }
        else{
            delegate?.collapseSidePanels?()
            _isMenuOpen = false
        }
    }
    // MARK: Button actions
}