12

次のコードで、UIButtonが押されたUIButtonタイトルが何であるかを見つけようとしています。

viewDidLoadで、ボタンのタイトルは次を使用してコンソールに出力されます。

        NSLog(@"The button title is %@ ", btn.titleLabel.text);

代わりにボタンを押したときにこのタイトルを取得したいと思います。

助けてくれてありがとう

:)

// Create buttons for the sliding category menu.
        NSMutableArray* buttonArray = [NSMutableArray array];
        NSArray * myImages = [NSArray arrayWithObjects:@"category-cafe-unsel.png", @"category-food-unsel.png", @"category-clothing-unsel.png", @"category-health-unsel.png", @"category-tech-unsel_phone.png" , @"category-tech2-unsel.png", @"catefory-theatre-unsel.png", @"category-travel-unsel.png", nil];

        // only create the amount of buttons based on the image array count
        for(int i = 0;i < [myImages count]; i++)
        {
            // Custom UIButton

            btn = [UIButton buttonWithType:UIButtonTypeCustom];

            [btn setFrame:CGRectMake(0.0f, 20.0f, 52.0f, 52.0f)];
            [btn setTitle:[NSString stringWithFormat:@"Button %d", i] forState:UIControlStateNormal];
            [btn setImage:[UIImage imageNamed:[myImages objectAtIndex:i]] forState:UIControlStateNormal];

            NSLog(@"The button title is %@ ", btn.titleLabel.text);

            [btn addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
            [buttonArray addObject:btn];

            NSLog(@"Button tag is: %d",btn.tag);

        }
4

3 に答える 3

28

あなたの行動で:

- (void) buttonPressed:(UIButton*) sender {
    NSLog(@"The button title is %@",sender.titleLabel.text);
}

編集:またはコメントされたようにIulian:、sender.currentTitleしかしそれはそうかもしれませんnil、マイケルのコメントを見てください。

于 2013-01-07T15:52:15.717 に答える
11

あなたはどこかに機能を持っているべきです...

- (void)buttonPressed:(id)sender

これを中に入れるだけです...

- (void)buttonPressed:(id)sender
{
    UIButton *someButton = (UIButton*)sender;

    NSLog(@"The button title is %@ ", [someButton titleForState:UIControlStateNormal]);

    //You should also be able to use...
    //NSLog(@"The button title is %@ ", someButton.titleLabel.text);
}
于 2013-01-07T15:50:45.133 に答える
4
NSString * strButtonTitle = [btnButton titleForState:state];

ここで状態:

UIControlStateNormal,
UIControlStateHighlighted,
UIControlStateDisabled,
UIControlStateSelected,
UIControlStateFocused,
UIControlStateApplication,
UIControlStateReserved

あなたの要件のために

NSString * strButtonTitle = [btnButton titleForState:UIControlStateSelected];

これは、プログラム内の任意の時点でボタンのさまざまな状態のタイトルを取得するための方法です...しかし、Zaphodからの質問の回答に基づくと良いです。

于 2016-06-30T07:17:36.887 に答える