2013-03-08 72 views
0

我是新來的iphone和一個項目,需求是在UITableView我們有兩個sections。在第一節中我們必須顯示地址,在第二節中我們有四個變量行,它們由Phone number, Fax, Email, and SMS組成。如果任何項目(phone,fax,email,sms)不會有數據,那麼該行將不可見,並且每行都包含一個按鈕。點擊這些UIButton應執行特定的功能,如果我點擊了電話行中的按鈕,那麼它應該連接到智能手機。TableCell帶按鈕和不同的按鈕動作

我的問題是我無法區分UIButton行爲,因爲行不固定。那麼如何動態地根據特定的行數據執行動作。目前,我只能對所有行按鈕執行一個操作。

+0

如果您的問題只是調用該操作,然後在此處閱讀我的答案:http://stackoverflow.com/questions/15292997/adding-a-integer-after-variable-name-to-access/15293136#15293136 – 2013-03-08 12:54:46

回答

1

使用枚舉來定義您的單元類型。檢查處理程序中的枚舉。

typedef enum { 
    CellTypePhone = 100, 
    CellTypeFax, 
    CellTypeEmail, 
    CellTypeSMS 
} CellType; 

使用這些標記您的單元格或按鈕,例如,

cell.tag = CellTypePhone; 
button.tag = CellTypePhone; 

然後你知道在按鈕處理程序中選擇了哪個單元格。

-(void)buttonPressed:(UIButton*)sender { 
    if  (sender.tag == CellTypePhone)  { /* handle phone */ } 
    else if (sender.tag == CellTypeFax)  { /* handle fax */ } 
    // etc. 
} 
+0

我們如何將不同的標籤設置到tableview單元格中的同一個按鈕上,並且它也應該是動態的。就像電話號碼一樣。單元格將可用,那麼只有它應該標記。 – Rahul 2013-03-11 07:36:51

+0

每當您動態更改按鈕時,還要更改標記。 – Mundi 2013-03-11 13:25:46

0

爲您的UIButtons指定不同的標籤號碼。您可以使用IB爲您的按鈕賦予標籤號碼,然後執行相應的操作,調用標籤值。

0

有幾種不同的處理方法。我假設你有一個自定義單元格,其上有一個UILabelUIButton。首先是添加標籤,就像Mundi說的那樣。

第二種方法是向定製按鈕的目標和操作的自定義單元添加一個方法。根據數據設置單元格時,還可以爲每個按鈕設置選擇器。