2011-12-10 60 views
0

我已經分別創建了名爲SweepStakeTableViewCell的.h,.m和.xib文件,並且在我的xib文件中,我已經將視圖替換爲單元格,如下所示。我在不同的TableView中使用了TableViewCell。那麼如何將TableViewCell的選定按鈕的值提取到TableView

enter image description here

現在,我已經寫了所有的代碼,選擇按鈕。我已成功將此單元格整合到具有名爲SweepViewController的不同.h,.m和.Xib文件的表中。並且該XIB的輸出將顯示這樣的參與者和選項按鈕。 enter image description here

現在即將到主點我想通過選擇按鈕的價值SweepViewController的和選擇按鈕坐在SweepStakeTableViewCell的邏輯。

請幫我這個。如果你不能清楚地理解我的問題,請問我。

回答

0

如果我理解這個問題,有兩種方法:

1)保存SweepStakeTableViewCells到SweepViewController參考。通過在子類中添加一個屬性(即實例變量和公共設置器)並在您的tableView:cellForRowAtIndexPath:方法中創建單元格時進行設置。

2)使用Apple提供的通知系統。你的viewController需要註冊一個觀察者。然後你的單元可以發佈通知,它們將被viewController拾取。檢查NSNotificationCenter的文檔。

0

您可以爲SweepStakeTableViewCell創建一個委託併爲其分配SweepViewController。

@protocol SweepStakeTableViewCellDelegate <NSObject> 
- (void)sweepTableViewCell:(SweepStakeTableViewCell *)cell buttonSelected:(UIButton *)button; 
@end 

創建在表視圖委託方法的細胞時分配視圖控制器(在這種情況下自)到SweepStakeTableViewCell委託方法。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[SweepStakeTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
    } 

    // Configure the cell... 
    . 
    . 
    . 
    cell.delegate = self; 
    return cell; 
} 

對於SweepStakeTableViewCell

@interface SweepStakeTableViewCell : UITableViewCell 
. 
. 
@property (nonatomic, assign) id<SweepStakeTableViewCellDelegate> delegate; 
. 
@end 

@implementation SweepStakeTableViewCell 
. 
- (void)buttonTapped:(id)sender 
{ 
    if ([delegate respondsToSelector:@selector(sweepTableViewCell:buttonSelected:)]) 
    { 
     [delegate sweepTableViewCell:self buttonSelected:sender]; 
    } 
} 
. 
@end 

當按鈕被在表視圖細胞選擇,它將調用在這種情況下與細胞視圖控制器和選擇的按鈕,可以委託方法檢索值。

相關問題