2012-03-12 14 views
0

(我張貼的問題下面的Three20論壇,但no response so far!也許你們可以幫忙。)iOS:Three20:TTTableItem委託:如何唯一標識tableItem?

我用TTTableViewController在我的iOS應用程序,有一兩件事我想達到的。

每個TTTableItem類都有一個方法來在初始化它時分配一個委託&選擇器。例如:TTTableTextItem has(+ itemWithText:delegate:selector :)現在,選擇器方法將具有如下簽名: - (void)selectorMethodForTableItem:(id)sender;我想唯一標識所選的tableItem,但在選擇器方法中,我只有TTTableTextItem對象,它只有'text'參數。 (在「文本」參數是一個字符串,它可能是2個tableItems相同)

我可以很容易地解決這個問題,如果我爲每個表項一TTUrl,但我不想當導航到一個新的屏幕tableItem被按下。只是說,我想顯示一個基於用戶選擇哪個tableItem的警報。

我該如何解決這個問題?我必須定義一個自定義TTTableItem類嗎?

回答

2

您可以爲每個TTTableTextItem設置一個TTURL,並在TTNavigtor接管之前「捕捉」TTTableViewController中的觸摸,這樣您的應用將不會導航到其他頁面。

TTTableViewController,添加此功能:

/////////////////////////////////////////////////////////////////////////////////////////////////// 
- (void)didSelectObject:(id)object atIndexPath:(NSIndexPath *)indexPath { 

    TTTableItem* item = object; 
    NSLog(@"%@", item.URL); 

    [self.tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

注意此功能不會調用父didSelectObject,這意味着它不會在對象傳遞給TTNavigator

+0

簡單而有效。謝謝! – sherlock 2012-03-13 06:31:39