2012-07-23 42 views
0

我有一個簡單的問題:在自定義單元中檢測分段控制的動作

在tableView中,我顯示了一個customCells列表。這些單元格包含標籤,分段控制器....

標籤,segmentedController和其他單元格屬性在特定的類中聲明。

我該如何在更新列表的類中檢測單元格的分段控制器是否被修改?在本課中,當我做類似的事情時:

if (cell.segmentedControl == 1) { DO MY THINGS } 

......什麼也沒有發生。

有沒有人建議? :-)

回答

2

首先,我敢肯定你需要使用

(cell.segmentedControl.selectedSegmentIndex == 1) 

與問候知道什麼時候它已經改變了,使用連接到您的類中的IBAction爲,設置代理上您的視圖控制器將在單擊單元格控件時從單元類中獲取回調。

編輯-----------------------
在你的細胞的類的.h添加

@property (nonatomic, weak) id<NSObject> delegate; 

在細胞中的類.M

@synthesize delegate = _delegate; 

- (IBAction)segmentControlChanged 
{ 
    if ([self.delegate respondsToSelector:@selector(segmentChanged:)]) { 
     [self.delegate performSelector:@selector(segmentChanged:) withObject:self]; 
    } 
} 

在你的ViewController具有表,在cellForRowAtIndexPath方法,添加

cellname.delegate = self 

,並添加方法

-(void)segmentChanged { 
    // Put code here to refresh your data source 
[self.tableView reloadData]; 
} 
+0

我的壞...是的,我忘了selectedSegmentIndex,當然... – tvincent 2012-07-23 11:00:23

+0

容易的錯誤。不要忘記接受答案:-) – Darren 2012-07-23 11:01:48

+0

我的意思是......我在這裏忘了......不在我的代碼中;-) 所以基本上,我已經做了:在分段控制器上設置IBAction,所以我的單元格可以看到值何時更改。 我該做些什麼:爲單元設置一個委託(但在何處?在單元的視圖控制器中?),然後在我的tableView中使用這個委託? – tvincent 2012-07-23 12:34:24

相關問題