多个按钮的相同操作方法--- UI Navigation Controller - 87445

时间:2012-06-08 03:41:43

标签: objective-c xcode

HI我是XCODE的新手并尝试制作一个使用导航控制器的基于视图的应用程序。在我的一个观点中,我试图为不同的按钮附加相同的动作方法。我正在使用UIButtons的标签属性。

代码是

@interface firstview : UIViewController {
    IBOutlet UIButton *button1;
    IBOutlet UIButton *button2;

    }

    @property(nonatomic, retain) IBOutlet UIButton *button1;
    @property(nonatomic, retain) IBOutlet UIButton *button2;

    -(IBAction)push:(UIButton *)sender;

    @end



    #import "firstview.h"
    #import "secondview.h"


    @implementation firstview

    @synthesize button1;
    @synthesize button2;

    -(IBAction)push:(UIButton *)sender{

    button1.tag = 1;
    button2.tag = 2;


    if(sender.tag = button1.tag){
    secondview *v2 = [[secondview alloc]initWithNibName:@"secondview" bundle:Nil];
    v2.title =@"first button";
    v2.l1.text = @"BUTTON1";
    [self.navigationController pushViewController:v2 animated:YES];
    [v2 release];
    }
    else if(sender.tag = button2.tag){
    secondview *v2 = [[secondview alloc]initWithNibName:@"secondview" bundle:Nil];
    v2.title =@"Select";
    v2.l1.text = @"BUTTON2";
    [self.navigationController pushViewController:v2 animated:YES];
    [v2 release];
    }

    }

    @end

我希望当按下某个特定按钮时,视图的标题应该改变,标签的文本也应该改变。但是实现上面的代码给了我第一个按钮的视图,无论我按哪个按钮。如果有人能告诉我哪里出错了,我将不胜感激。

根据建议,我改变了平等标志。但标签仍然没有显示文字。

1 个答案:

答案 0 :(得分:0)

您正在检查sender.tag = button1.tag,而不是sender.tag == button1.tag。您需要使用两个等号来检查是否相等。

正在发生的事情是您将sender.tag设置为button1.tag的值。该代码运行后,程序将评估if (sender.tag)。由于sender.tag始终等于1if(sender.tag) == if(1) == YES