0

私のプログラムには多くのカスタム ボタンがあり、メソッドを使用してそれらの名前を取得する必要があります。タグを介して名前を取得する方法を理解しましたが、名前を文字列形式にするためにそれをたどることができないようです。

私が使用しているものは次のとおりです。

-(void)pickRandomToHide {
    for (int check = 1; check <=5; check++)
    {
        int eventNumber = 1 + arc4random() % 43;
        UIButton *pick;
        pick = (UIButton *)[_mapImageView viewWithTag:eventNumber];
        [pick setHidden:YES];
        NSString *buttonName;
        buttonName = [pick currentTitle];
        NSLog(@"%@",buttonName);
    }
}

NSLog は 'Null' を 5 回返すだけです。しかし、5つのボタンが消えているので、開始は機能しています。

4

1 に答える 1

0

タイトルが表示されない理由は、ボタンが非表示で無効になっているためです。タイトルは、ボタンのコントロール状態が「通常」(有効で表示されている) の場合にのみ表示されるように設定されている可能性があります。UIButton コントロールの状態に関する Apple からの詳細情報は次のとおりです。

これを試してください:

-(void)pickRandomToHide {
    for (int check = 1; check <=5; check++)
    {
        int eventNumber = 1 + arc4random() % 43;
        UIButton *pick = (UIButton *)[_mapImageView viewWithTag:eventNumber];
        if(pick)
        {
            [pick setHidden:YES];
            NSString *buttonName = [pick titleForState: UIControlStateNormal];
            NSLog(@"%@",buttonName);
        } else {
            NSLog( @"hmmm, no button with a tag corresponding to event number %d", eventNumber);
        }
    }
}
于 2012-11-25T11:53:05.687 に答える