2013-04-24 41 views
1

我正在拼命地使這個IBAction只是有效地按下選定行的單元格。我已經設法讓它選擇一行,但我無法解決如何有效地點擊這個單元格!我只做了我的第一個應用程序,但我已經設法弄清了大部分事情,但似乎無法找到如何做到這一點,我希望這是一個簡單的解決方案(或者有更好的方法做比我有)。使用IBAction來選擇並按表格單元格

這裏是反正我IBAction爲代碼:

- (IBAction)myButton:(id)sender { 

// Specify which cell I wan't to select 

NSIndexPath *myIP = [NSIndexPath indexPathForRow:0 inSection:0]; 

// Select it 

[self.tableView selectRowAtIndexPath:myIP animated:NO scrollPosition:UITableViewScrollPositionTop]; 

// Click this cell?? 

} 

預先感謝任何幫助

回答

1

只要告訴代表,你已經選擇了它

[self tableView:self.tableView didSelectRowAtIndexPath:myIP]; 

假設self是控制桌子的VC。

+0

這給了我以下錯誤: 沒有可見的@interface爲UITableView聲明選擇器didselectrowatindexpath – user2255616 2013-04-24 15:14:40

+0

是你的視圖控制器從UITableViewController子類?如果沒有,你需要確保你的tableView屬性設置了它的數據源和委託屬性。同時確保你已經實現了didSelectRowAtIndexPath方法。 – inks2002 2013-04-24 15:21:08

+0

是的,修復了我的答案 – 2013-04-24 15:25:38

0

不是一種乾淨的方式來實現,但根據我的理解,您可以在每個單元格上添加自定義UIButton(透明),例如它覆蓋了cellForRowAtIndexPath:中幾乎完整的單元格,禁用行選擇。在這些按鈕,您可以使用addTarget:action:

0

如果在它的UITableView您的視圖控制器,將不會繼承UITableViewController你需要創建一個IBOutlet的UITableView稱之爲myTableView或任何你喜歡的話,那麼在你的IBAction,你可以像這樣引用它:

- (IBAction)myButton:(id)sender { 

    // Specify which cell I wan't to select 
    NSIndexPath *myIP = [NSIndexPath indexPathForRow:0 inSection:0]; 

    // Select it 
    [self.myTableView selectRowAtIndexPath:myIP animated:NO scrollPosition:UITableViewScrollPositionTop]; 

    // (Per Dmitry's answer) 
    [self.myTableView didSelectRowAtIndexPath:myIP]; 
} 
相關問題