0

我不知道为什么我的 segmentedControl 不起作用。如果我按下它,我会收到错误消息

[AddDetailViewController segmentedControlIndexChanged:]:无法识别的选择器发送到实例 0x71e0ad0
2012-11-05 16:25:51.380 proiet_caini[5903:c07] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[AddDetailViewController segmentedControlIndexChanged:]:无法识别选择器发送到实例 0x71e0ad0'

当我单击位于表格单元格中的 segmentedControl 时,我希望被选中并保存它,以便我可以显示它。

另一个问题是我无法在单元格的右侧找到它。

这是我的代码:

此代码位于 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 回答