UITableView - 点击时获取数据

时间:2012-05-02 13:18:58

标签: ios iphone web-services uitableview

我的问题是,当点击单元格时,是否可以从php中获取文本数据并在我的ViewController中读取它?

我猜didSelectRowAtIndexPath是执行此操作的关键,但我不确定如何写。

我可以将php中的数据导入我的TableViewController,如下所示;

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [json count];

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }

    NSDictionary *info = [json objectAtIndex:indexPath.row];
    cell.textLabel.text = [info objectForKey:@"Artist"];
    cell.detailTextLabel.text = [info objectForKey:@"Song"];


    return  cell;
}

3 个答案:

答案 0 :(得分:0)

你的代码我认为错了。通过检查

检查json中是否有任何数据
NSLog(@"%@ and %@",[info objectForKey:@"Artist"],  [info objectForKey:@"Song"]);

并告诉我是否有任何结果。如果没有那么你的PHP中就会出现一些错误,你的数据应该显示在那里。

答案 1 :(得分:0)

你写的代码与你在开头解释的内容有些矛盾。但是,这就是应该完成的方式:

首先,您需要获取要显示的数据。你可以从外部网站(php,你称之为),plist,xml或任何你想要的东西得到这个。您可以在启动tableview时(例如,使用ASIHTTPRequest)或在启动tableview之前执行此操作,然后使用自定义init方法将其发送。 其次,您需要阅读收到的内容。通常很高兴获得NSArray格式。这取决于您从中获取数据的数据源的实现。

如果您不熟悉objective-c和cocoa-touch,那么您应该从一些关于UITableView的快速教程开始。我自己写了一个,但目前我猜它(非常)已经过时了。你仍然可以看看它:http://paulpeelen.com/2009/08/14/developing-with-iphone-3-0-x-simple-uitableview/

答案 2 :(得分:0)

使用这种代码方法。

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{ 
  //retrive your data here.
}