0

segmentedControl が機能しない理由がわかりません。押したらエラー出た

[AddDetailViewController segmentedControlIndexChanged:]: インスタンス 0x71e0ad0 に送信された認識されないセレクター
2012-11-05 16:25:51.380 proiect_caini[5903:c07] *キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。インスタンス 0x71e0ad0' に送信されたセレクター

テーブルのセルにある segmentedControl をクリックして選択し、それを保存して表示できるようにしたい。

もう 1 つの問題は、セルの右側にこれが見つからないことです。

これが私のコードです:

このコードは、セルを作成するときに cellForRowAtIndexPath にあります。

 case 8:{
        cell.textLabel.text = @"Parinti";
        //inputField.text = 
        lblParinti.text = dog?dog.parinti:@"";

        segmentedControl1 = [[UISegmentedControl alloc] initWithItems: segmentItems];
 //            segmentedControl1.segmentedControlStyle = UISegmentedControlStyleBar;
 //            segmentedControl1.selectedSegmentIndex = 0;

        [segmentedControl1 addTarget:self action:@selector(segmentedControlIndexChanged:) forControlEvents:UIControlEventValueChanged];

        [cell addSubview:lblParinti];
        [cell.contentView addSubview:segmentedControl1];
        break;}

トリガーされるイベントは次のとおりです。

  -(void) segmentedControlIndexChanged{

    // reload data based on the new index

    if (segmentedControl1.selectedSegmentIndex == 0) {
        dog.parinti = @"Da";
    } else if (segmentedControl1.selectedSegmentIndex == 1) {
        dog.parinti = @"Nu";
    }
    //dog.parinti = [segmentedControl1 titleForSegmentAtIndex:segmentedControl1.selectedSegmentIndex];

    [self.tableView reloadData];

}
4

1 に答える 1

1

cellForRowAtIndexPathからコードを変更します

[segmentedControl1 addTarget:self action:@selector(segmentedControlIndexChanged:) forControlEvents:UIControlEventValueChanged];

[segmentedControl1 addTarget:self action:@selector(segmentedControlIndexChanged) forControlEvents:UIControlEventValueChanged];

使用する場合@selector(segmentedControlIndexChanged:)、メソッドに引数があると言っています(引数はありません)。

于 2012-11-05T14:59:59.870 に答える