2012-04-29 10 views
0

UIBarButtonItemを押して、アクションを実行しようとしています。それが実行されると、BarButtonItemのタイトルの名前が変更されます。そうすれば、私はもう一度ヒットすると、すべてをコーディングして元の状態に戻す代わりに、実行したアクションを元に戻すことができます。ここに私のコードの例があります。IBActionを元に戻しますか?

- (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"]; 
} 

} 
+0

がメメントデザインパターンを検索してみてください、私はそれが何をだと思いますあなたは良いリンクがありますか? – Novarg

+0

あなたは良いリンクがありますか? – Jason

+0

@ノヴァーク例を提供したいと思いませんか? – Jason

答えて

0

元のコードを再実行して、アクションを元に戻すのは簡単です。

0

お望みならそれを試してください。

UButtonをプログラムでviewDidLoad。,,に追加します。

- (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]; 

} 

と、このようなアクションを与え、。、。、

-(IBAction)MyAction:(id)sender 
{ 
    UIButton *temp=(UIButton *)sender; 

    if([email protected]"Test1") 
    { 
     [temp setTitle:@"Test2" forState:UIControlStateNormal]; 

    } 
    else if ([email protected]"Test2") 
    { 
     [temp setTitle:@"Test1" forState:UIControlStateNormal]; 
    } 

} 

私は、学んでいます。..、

関連する問題