2012-10-01 48 views
-2

我在didSelectRowAtIndexPath方法中。我在每一行都有一個按鈕,然後點擊那個按鈕我想要做一些事情。我做了以下情況:目標c中功能的不滿意流程

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    button=[UIButton alloc] initWithFrame:CGRectMake(230,0,40,40]; 
    button.addTarget: self action: @selector(buttonPressed:withEvent:) forControlEvents:UIControlEventTouchUpInside]; 
    button.tag=indexPath.row; 
    [button setImage: [UIImage imageNamed:@"a.png"] forState:UIControlStateNormal]; 
    [cell addSubview: button]; 
} 

-(void)buttonPressed:(id) sender withEvent:(UIEvent*) event { 
    //it doesnt go in this function 

} 

我不理解爲什麼它不能在buttonPressed功能去的原因。

+0

靠近頂部的一些東西看起來不像ObjC ...你確定這不是一個語法問題嗎? – CodaFi

+0

我正在使用表視圖控制器中的xcode。 – Shikha

+0

這看起來*非常類似於您之前的問題之一:http://stackoverflow.com/questions/12670566/using-cell-returned-from-cellforrow-method-in-didselectrow-method(爲此您已經接受了一個的答案)。 –

回答

1

它不工作的原因是因爲您在用戶觸摸單元格時創建按鈕。因此,您爲該按鈕創建的操作永遠不會啓動,因爲用戶沒有觸摸該按鈕。

如果您在cellForRowAtIndexPath中創建按鈕,然後用戶觸摸按鈕,它可能會工作。但---你需要確保檢查按鈕是否存在FIRST,或者你可以通過單元複用(tableView的行爲方式)在同一個單元格中創建幾個按鈕。

0

Here是一個示例演示應用程序,它使用自定義單元格,並顯示來自Web服務的一些數據。

從您的代碼在你將有電池的單實例的時間,讓你的更好,如果你在cellForRowMethod細胞創建按鈕或使用customCell有需要的對象,在cellForRow方法添加目標。

查看示例應用程序,您將會知道如何在您的tableView中使用自定義單元格,加載數據,從每個單元格獲取按鈕動作。