Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios addTarget添加额外事件_Ios_Swift_Addtarget - Fatal编程技术网

Ios addTarget添加额外事件

Ios addTarget添加额外事件,ios,swift,addtarget,Ios,Swift,Addtarget,我想在单击按钮时添加另一个事件。我使用addTarget在单击按钮时观察按钮,并调用方法名showModal。请参阅下面的代码 headerView.addTaskButton.addTarget(self, action: #selector(showModal), for: .touchUpInside) 我想在按下按钮时添加另一个动作。但我不知道在哪里 self.todoListViewModel.updateMode(.edit) 有没有办法用addTarget实现这一点?比如添加闭

我想在单击按钮时添加另一个事件。我使用addTarget在单击按钮时观察按钮,并调用方法名showModal。请参阅下面的代码

headerView.addTaskButton.addTarget(self, action: #selector(showModal), for: .touchUpInside)
我想在按下按钮时添加另一个动作。但我不知道在哪里

self.todoListViewModel.updateMode(.edit)
有没有办法用addTarget实现这一点?比如添加闭包之类的东西

我只需要addTaskButton来更新模式。 如果我在showmodel方法中添加self.todoListViewModel.updateMode.edit,则调用该方法的所有内容都将更新为.edit模式
所以我不想把它放在showModal方法中。还有吗?

您不需要添加其他操作,只需将代码放在showModal函数中即可

func showModal(_ sender: UIButton) {
   
   self.todoListViewModel.updateMode(.edit)

   // your remaining code

}

您可以声明两个操作:

func commonAction(_ sender: UIButton) {
    // code for all buttons
}
func showModal(_ sender: UIButton) {

    self.todoListViewModel.updateMode(.edit)
    self.commonAction(sender)
}
另一个选项:设置按钮的标记以了解是否必须执行该操作:

func commonActionOrModal(_ sender: UIButton) {
    If sender.tag == 1 {
        self.todoListViewModel.updateMode(.edit)
    }
    // code for all buttons
}

我不想为另一个调用操作更新模型。就像我只希望addTaskButton只更新模式一样。我试图获取func作为参数,以了解哪个调用了该方法,但出现了错误。您的问题令人困惑。。。你有两个按钮还是只有一个?如果只有一个,是否要在按下按钮时执行self.todoListViewModel.updateMode.edit。触地向内,并在释放按钮时执行showModal。触地向内?