在我的應用程序中,我有一個表格顯示每行中的單元格。 在界面生成器中,我將一個按鈕拖到單元格上,將其設置爲黑暗信息按鈕,並將其連接到IBAction。 這工作正常。 只有,我希望按鈕的行爲有所不同,具體取決於按鈕單元格所在的表的行。 我將如何獲得該行索引?如何查找UIButton的行索引是TableCell? (iPhone)
我意識到,我可能會顯示缺少的對象層次的基本認識,但我希望你們能原諒我
感謝 Sjakelien
在我的應用程序中,我有一個表格顯示每行中的單元格。 在界面生成器中,我將一個按鈕拖到單元格上,將其設置爲黑暗信息按鈕,並將其連接到IBAction。 這工作正常。 只有,我希望按鈕的行爲有所不同,具體取決於按鈕單元格所在的表的行。 我將如何獲得該行索引?如何查找UIButton的行索引是TableCell? (iPhone)
我意識到,我可能會顯示缺少的對象層次的基本認識,但我希望你們能原諒我
感謝 Sjakelien
在你的tableView委託和數據源的方法(檢查文檔!)你有幾種方法,最好的一個,這是
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
放棄這一方法在實施和這樣說
switch (indexPath.row) {
case 0:
//set variable or do method based on row 0 (first row)
break;
case 1:
//set variable or do method based on row 1 (second row)
break;
case 2:
//set variable or do method based on row 2 (third row)
break;
}//and so on
}
如果首先沒有設置一些數據,這絕對不容易。如果可以,請使用NSDictionary
,其中按鈕是鍵,值是索引路徑,每當您從-tableView:cellForRowAtIndexPath:
返回一個單元時,都會更新它。類似這樣的:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
[indexDict setValue:indexPath forKey:theButton];
return cell;
}
- (void) buttonPressed:(UIButton *)button {
NSIndexPath *indexPath = [indexDict valueForKey:button];
...
}
您可以維護標籤。當你拖放按鈕時,檢查界面的構建,你會看到這些按鈕的「標籤」屬性。爲每個按鈕分配不同的值(我假設您爲不同的行有不同的按鈕,如果您對不同的行具有相同的單元標識符,則此解決方案將不起作用)。並且當您收到標記值的事件檢查時。 我的工作和我的工作有類似的問題,我爲每個創建的按鈕標籤維護NSArray。
另一種方法是在您的視圖中更改您的UIButton的基類,然後使用這個其他類,這基本上擴展了UIButton,添加了NSInteger行@property(請記住@synthesize它)。
你會那麼電池安裝過程中設置此屬性,您可以檢索信息的方法
這發生在小區被選擇,而不是在小區內的按鈕被按下內這個屬性。 OP表示他已經創建並連接了一個IBAction,它是與任何表視圖委託/數據源方法不同的方法。 – Tim 2009-10-20 15:30:59
是的,你說得對。也許像選中時獲取單元格,然後查看該視圖的子視圖搜索按鈕。 – JoePasq 2009-10-20 16:58:09