1

セグメントコントロールとラベルを含むアプリを作成したいのですが、コントロールを押したときにラベルを変更します。

「送信者」を使用してセグメントコントロールの値を取得したいのですが、なぜ機能しないのですか?

-(void)segmentControlIndexChanged:(id)sender
{
    switch ([sender selectedIndex]) {
        case 0:
            label.text = @"Case Zero :)";
            break;
        case 1:
            label.text = @"Happy New Year!";
            break;
        default:
            label.text = @"Press a button:";
            break;
    }
}

その他の問題:以下のコードが原因です:

-[ViewController segmentControlIndexChanged:]:認識されないセレクターがインスタンスに送信されました

//ViewController.h
@interface ViewController : UIViewController {
    IBOutlet UILabel *label;
    IBOutlet UISegmentControl *segmentControl;
}

@property (retain, nonatomic) UILabel *label;
@property (retain, nonatomic) UISegmentControl *segmentControl;

-

//ViewController.m
-(IBAction)segmentControlIndexChanged
{
    switch ([segmentControl selectedSegmentIndex]) {
        case 0:
            label.text = @"X'mas always come first :)";
            break;
        case 1:
            label.text = @"Happy New Year!";
            break;
        default:
            label.text = @"Press a button:";
            break;
    }
}
4

1 に答える 1

2

プロパティUISegmentedControlがあるため機能しません:ではありません:selectedSegmentIndexselectedIndex

switch ([sender selectedSegmentIndex]) { // <<== Here
    case 0:
        label.text = @"Case Zero :)";
        break;
    case 1:
        label.text = @"Happy New Year!";
        break;
    default:
        label.text = @"Press a button:";
        break;
}

Xcodeでは、間違った方法を選択できる場合があります。正確な名前がわからない場合は、オンラインおよびXcodeのヘルプ/ドキュメントおよびAPIリファレンスから入手できる開発者向けドキュメントを参照してください。

于 2012-12-30T05:35:14.920 に答える