调用方法的按钮动作

button action to call a method

我在 iOS 开发方面还很陌生,正在寻求您的建议。

我正在 GitHub 查看一个项目。

我想添加一些功能。我想添加一个按钮来显示 SideMenu 并可能隐藏它。

sideMenu 是 class SideMenu 的实例,它是在 ViewDidLoad 方法中创建的。如何使用按钮的操作方法调用 sideMenu.toggleMenu(true) 方法。

class HomeViewController: UIViewController, SideMenuDelegate {

    @IBAction func menuButtonTapped(_ sender: Any) {

     sideMenu.toggleMenu(open: true)

    }


    override func viewDidLoad() {
        super.viewDidLoad()

    let sideMenu = SideMenu(menuWidth: 200 , menuItemTitles: ["", "", "Profile", "Settings", "Restaurant"], parentViewController: vviewController)

        sideMenu.menuDelegate = self

}

我的按钮是使用故事板创建的,这就是为什么我不能将它添加到 viewDidLoad 中的原因。

理论上我可以在 ViewDidLoad 中以编程方式创建按钮。这是唯一的解决方案吗?

问题与您的按钮或声明按钮的位置无关。

sideMenu 在您的代码中是 viewDidLoad 的常量并且 IBAction.

无法访问

将您对 sideMenu 的定义移到方法之外并使其成为可选的:

var sideMenu:SideMenu?

viewDidLoad 中将其设置为您当前的状态(删除 let)

sideMenu = SideMenu(...

IBAction 中,解包可选的以使用它:

if let sideMenu = sideMenu {
    // do what you need with sideMenu
else {
    // handle error sideMenu not initialised properly
}

请参阅 vacawama 对替代方案的评论。