如何直接调用tableView方法?

时间:2013-07-29 06:33:48

标签: ios delegates tableview

我有一个像这样构造的方法:

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

//some table related stuff

}

但是我无法调用它,所以我基本上复制并粘贴了整个函数并重命名为:

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

并使用以下方法调用此方法:

[self jumpCountry:countryIndex];

然而,我的课看起来很丑(而不是首选)因为它有两个相同的方法。那么,我怎样才能直接调用初始方法(我知道它被分配给一个调用该方法的按钮)。我使用的是iOS6.1。基本上,我想直接调用的原因是我有另一个侦听通知的线程(来自位置服务),一旦收到通知,就应该更改表视图。通知本身已经搜索了NSIndexPath,因此不存在任何问题。

3 个答案:

答案 0 :(得分:1)

你可以放

[self jumpCountry:countryIndex];

到你的方法:

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

答案 1 :(得分:0)

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

此方法是来自UITableViewDelegate协议的表视图的委托方法,当用户在UITableView中选择一行时,它会被调用。你不应该自己称呼这种方法。

而不是你可以创建你的方法并做你想做的任何事情,并在viewDidLoad或任何方法中调用它。

答案 2 :(得分:0)

以编程方式调用

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

此处scrollIndexPath是要选择的行的索引路径

用于创建索引路径

NSIndexPath *scrollIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];