1

こんにちは、私は XCODE が初めてで、ナビゲーション コントローラーを使用するビュー ベースのアプリケーションを作成しようとしています。私のビューの 1 つで、異なるボタンに同じアクション メソッドをアタッチしようとしています。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

特定のボタンが押されたときに、ビューのタイトルとラベルのテキストが変更されるようにしたいと考えています。しかし、上記のコードを実装すると、どのボタンを押しても、最初のボタンのビューが表示されます。誰かがどこが間違っているのか教えていただければ幸いです。

提案に従って、等号を変更しました。しかし、ラベルにはまだテキストが表示されていません。

4

1 に答える 1

0

sender.tag = button1.tagチェックしているのではなく、チェックしていsender.tag == button1.tagます。等しいかどうかを確認するには、2つの等号を使用する必要があります。

何が起こっているのかというとsender.tag、の値に設定しているということですbutton1.tag。そのコードが実行された後、プログラムはを評価しif (sender.tag)ます。は常にsender.tag等しいので1if(sender.tag)==== 。if(1)YES

于 2012-06-08T03:56:27.183 に答える