0

私は次のように構築されたメソッドを持っています:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

//some table related stuff

}

ただし、これを呼び出すことはできないため、基本的に関数全体をコピーして貼り付け、名前を次のように変更しました。

 - (void)jumpCountry: (NSIndexPath *)indexPath {
//some table related stuff
}

そして、次を使用してこのメ​​ソッドを呼び出します。

[self jumpCountry:countryIndex];

ただし、同じ 2 つのメソッドを持っているため、私のクラスは醜い (そして好ましくない) ように見えます。では、どうすれば初期メソッドを直接呼び出すことができますか (そのメソッドを呼び出すボタンに割り当てられていることがわかっています)。iOS6.1を使用しています。基本的に、直接呼び出したい理由は、(ロケーション サービスからの) 通知をリッスンする別のスレッドがあるためです。通知を受信したら、テーブル ビューを変更する必要があります。通知自体は既に NSIndexPath を検索しているため、問題はありません。

4

3 に答える 3

1

あなたはちょうど置くことができます

[self jumpCountry:countryIndex];

あなたの方法に:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
于 2013-07-29T06:38:42.023 に答える
0

プログラムで呼び出すには

[tabelView selectRowAtIndexPath:scrollIndexPath animated:NO scrollPosition:UITableViewScrollPositionNone];

scrollIndexPath選択する行のインデックスパスは次のとおりです

インデックスパスの作成用

NSIndexPath *scrollIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];
于 2013-07-29T06:42:03.040 に答える
0
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

このメソッドは、プロトコルからのテーブル ビューのデリゲート メソッドでありUITableViewDelegate、ユーザーが で行を選択すると呼び出されますUITableView。このメソッドを自分で呼び出さないでください。

代わりに、メソッドを作成し、やりたいことを何でもして、viewDidLoadまたは任意のメソッドで呼び出すことができます。

于 2013-07-29T06:40:19.967 に答える