0

テストを変更して、2つの異なるステージ間を切り替えるボタンを作成したかったのです。したがって、「追加」と表示されている場合は、「変更」をクリックして削除します。削除と表示されている場合は、追加に変更されます。

プログラムが機能しませんでした。デバッグを試みるために、setTitleメソッドをoncreateに入れて、そこで機能しました。次に、メソッドにブレークポイントを設定します。追加と言ったのを検出し、テキストを変更するはずの行を実行しましたが、テキストは変更されませんでした。私のメソッドではなく、oncreateメソッドで機能する理由がよくわかりません。

コード

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    mFeetImage.contentMode = UIViewContentModeScaleAspectFit;

    [gFileName Reset];
    NSString *ted= [gFileName GetFileName];
    mFeetImage.image= [ UIImage imageNamed :ted];

    // test code
    [ mFavrest setTitle: @"ADD" forState:UIControlStateNormal ];  works
}

-(IBAction) aFavest: (id) sender
{
    NSString *t=mFavrest.currentTitle;
    int i=[ t compare:@"ADD" ];

    if ( i ==0 )
    {
        // set break point here, break point goes off text does not change
        [ mFavrest setTitle: @"REMOVE" forState:UIControlStateNormal ];
    }
    else
    {
        [ mFavrest setTitle: @"ADD" forState:UIControlStateNormal];
    }
}
4

1 に答える 1

0

次のコードを試してください。

-(IBAction) aFavest: (id) sender
{
    UIButton *youButton = (UIButton*)sender;
    if ([youButton.currentTitle isEqualToString:@"ADD"])
    {
        // set break point here, break point goes off text does not chnage
        [youButton setTitle: @"REMOVE" forState:UIControlStateNormal ];
    }
    else
    {
        [youButton setTitle: @"ADD" forState:UIControlStateNormal];
    }
}

また、変数mFavrestが正しく接続されていることを確認してください。どこかにブレークポイントを置き、それが nil でないかどうかを確認します。

IBOutlet mFavrest が適切に接続され、IBAction も同様に接続されている場合、このコードは機能するはずです。

于 2012-11-10T02:08:19.690 に答える