2012-03-12 8 views
0

は(私はたぶん、あなたたちが助けることができる!Three20フォーラムに以下の質問を投稿、しかしno response so far。)iOS:Three20:TTTableItemデリゲート:tableItemを一意に識別する方法は?

私はiOSアプリでTTTableViewControllerを使用して、私が達成したい一つのことがあります。

TTTableItemクラスの各々は、それを初期化するときデリゲート&セレクタを割り当てる方法を有しています。

例:TTTableTextItemは(+ itemWithText:delegate:selector :)を持っています。セレクタメソッドは次のようなシグネチャを持っています: - (void)selectorMethodForTableItem:(id)sender;私は選択されたtableItemを一意に識別したいと思いますが、セレクタメソッド内には 'text'パラメータだけを持つTTTableTextItemオブジェクトしかありません。 ( 'text'パラメータは文字列で、2つのtableItemで同じになる可能性があります)

各tableItemにTTUrlを指定すると簡単に解決できますが、新しいスクリーンに移動したくない場合はtableItemが押された。つまり、ユーザーが選択するtableItemに基づいてアラートを表示したいとします。

この問題を解決するにはどうすればよいですか?カスタムのTTTableItemクラスを定義する必要はありますか?

答えて

2

TTTableTextItemのそれぞれにTTURLを設定し、TTTableViewControllerの接触を「キャッチ」してからTTNavigtorが引き継ぐので、アプリが別のページに移動することはありません。あなたのTTTableViewController

は、この機能を追加します。

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

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

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

(注)この機能は、それがTTNavigatorにオブジェクトを渡しません。つまり、親didSelectObject呼び出すことはありません。

+0

シンプルで効果的です。ありがとう! – sherlock

関連する問題