首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >撤消IBAction?

撤消IBAction?
EN

Stack Overflow用户
提问于 2012-04-29 22:00:59
回答 2查看 202关注 0票数 0

我正在尝试按下UIBarButtonItem并执行一个操作,它确实是这样做的。当发生这种情况时,我会更改BarButtonItem标题的名称。这样,如果我再次点击它,我想撤消它执行的操作,而不是编写所有代码来更改它。下面是我的代码示例。

代码语言:javascript
复制
- (IBAction)MyAction:(id)sender{

if([[MyButton title] isEqualToString:@"Test1"]){

//My Action is performed.

    [MyButton  setTitle:@"Test2"];
    [[undoManager prepareWithInvocationTarget:self] MyAction:?];
    [undoManager setActionName:@"UndoLastAction"];


}else if ([[MyButton title] isEqualToString:@"Test2"]){

    [MyButton setTitle:@"Test1"];
    [[undoManager prepareWithInvocationTarget:self]MyAction:?];
    [undoManager setActionName:@"UndoLastAction"];
}

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-30 02:24:16

不要紧,只需重新运行原始代码来“撤消”操作就更容易了。

票数 0
EN

Stack Overflow用户

发布于 2012-04-30 12:55:10

如果你想试试的话。

以编程方式在viewDidLoad.,,中添加UIButton。

代码语言:javascript
复制
 - (void)viewDidLoad
{
MyButton =[UIButton buttonWithType:UIButtonTypeRoundedRect];
[MyButton setFrame:CGRectMake(300, 450, 72, 37)];
[MyButton setTitle:@"Test1" forState:UIControlStateNormal]; 
[MyButton addTarget:self action:@selector(MyAction:) forControlEvents:UIControlEventTouchUpInside];
[self.view MyButton];

}

然后给出这样的动作……

代码语言:javascript
复制
 -(IBAction)MyAction:(id)sender
 { 
   UIButton *temp=(UIButton *)sender;

    if(temp.titleLabel.text==@"Test1")
    {
       [temp setTitle:@"Test2" forState:UIControlStateNormal]; 

    }
    else if (temp.titleLabel.text==@"Test2")
    {
      [temp setTitle:@"Test1" forState:UIControlStateNormal]; 
    }

}

我正在学习,..,..

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10372693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档