2012-03-19 132 views
2

我需要完成很多工作。我嘗試將附加信息附加到UITableViewCell。 tableViewCells得到的按鈕,我subclassed做到這一點(我通過一個NSString)。UITableViewCell附加信息

現在,當用戶點擊一個tableRow時,我想要觸發另一個方法並想傳遞相同的字符串。 我創建了UITableViewCell的子類,並將字符串添加到它。

但是我無法獲得tableView:didSelectRowAtIndexPath:中字符串的值。 這是因爲UITableView中返回的UITableViewCell,而不是我的自定義子類:

[tableView cellForRowAtIndexPath:indexPath].passString 
    → /* Property 'passString not found on object of type UITableViewCell */ 

當我做NSLog(@"%@", [tableView cellForRowAtIndexPath:indexPath]);我可以看到日誌的屬性。

現在我的問題: 如何在其他方法中獲得此子類屬性?

我不想子類UITableView。我最終會繼承像的UIElement我使用的是:'(

感謝您的幫助,問候 朱利安

回答

3

朱利安只需鍵入投UITableViewCell到您的自定義類像

CustomCell *cell = (CustomCell*)[tableView cellForRowAtIndexPath:indexPath]; 
cell. passString; //it will work 

或者你可以通過消息而不是點運算符
[[tableView cellForRowAtIndexPath:indexPath] passString];
它會給你warni ng,但會工作,如果它是你的對象CustomCell。更喜歡使用第一種方法,因爲我不喜歡我的代碼中的警告。

1

感謝您的回答! 我知道它的工作。

對於第30微小的我只是不知道,是什麼意思you'v和寫來源爲垃圾... :))

+0

@jullian,而不是回答你的問題,你可以在我的答案評論...:無論如何,這很好,你有我的觀點。 – 2012-03-19 15:59:10