2012-11-05 97 views
0

我不知道爲什麼我的segmentedControl無法正常工作。如果我按它,我得到的錯誤攻擊segmentedControl會導致無法識別的選擇器錯誤

[AddDetailViewController segmentedControlIndexChanged:]:無法識別的選擇發送到實例0x71e0ad0
2012年11月5日16:25:51.380 proiect_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]; 

} 
+0

如果我的回答以任何方式幫助你,請檢查我接受的答案,因爲這會鼓勵人們回答問題。 –

回答

1

更改您的代碼cellForRowAtIndexPath from

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

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

如果使用@selector(segmentedControlIndexChanged:)你是說你的方法有一個參數(其不發生)。

相關問題