Mysql iOS JSON解析到tableview,不正确的行

Mysql iOS JSON解析到tableview,不正确的行,mysql,ios,json,parsing,Mysql,Ios,Json,Parsing,我正在开发一个iOS应用程序,我有一个从MySQL数据库填充的tableview控制器。当我点击原始数据时,会出现一个detailview,显示数据库中的数据,如master detail应用程序。问题如下: 1.当我在iPhone模拟器上运行该应用程序时,该应用程序显示mysql表中的三条记录,这是正确的。 2.如果我点击第一行,什么也没发生。 3.如果单击第二行或第三行,应用程序将打开detailview,但数据与所选行(记录)不对应。 4.我点击detailview的后退按钮,应用程序再次

我正在开发一个iOS应用程序,我有一个从MySQL数据库填充的tableview控制器。当我点击原始数据时,会出现一个detailview,显示数据库中的数据,如master detail应用程序。问题如下: 1.当我在iPhone模拟器上运行该应用程序时,该应用程序显示mysql表中的三条记录,这是正确的。 2.如果我点击第一行,什么也没发生。 3.如果单击第二行或第三行,应用程序将打开detailview,但数据与所选行(记录)不对应。 4.我点击detailview的后退按钮,应用程序再次打开masterview。 5.现在,如果我单击第一行,应用程序将打开detailview,但如前所述,detailview数据与主视图上选定的行(记录)不对应。 这是我的viewcontroller代码(主视图):

这里是detailview代码:

//
//  DetailViewController.m

//

#import "DetailViewController.h"

@interface DetailViewController ()

@end

@implementation DetailViewController
@synthesize newsArticle;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    titleLabel.text = [newsArticle objectForKey:@"nombre"];
    timeLabel.text = [newsArticle objectForKey:@"name"];

    // Do any additional setup after loading the view from its nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
知道我做错了什么吗?? 多谢各位


您使用的是DIDDENCELEROW,当取消选择一行时会调用该行,因此wierd行为加上错误的数据。。您必须使用didSelectRow

谢谢您,但丁,我一直在寻找漫长一天的原因。是的。不客气,如果答案能解决你的问题,你应该接受。
//
//  DetailViewController.m

//

#import "DetailViewController.h"

@interface DetailViewController ()

@end

@implementation DetailViewController
@synthesize newsArticle;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    titleLabel.text = [newsArticle objectForKey:@"nombre"];
    timeLabel.text = [newsArticle objectForKey:@"name"];

    // Do any additional setup after loading the view from its nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
    detailViewController.title =[[news objectAtIndex:indexPath.row]objectForKey:@"nombre"];
    detailViewController.newsArticle = [news objectAtIndex:indexPath.row];
    [self.navigationController pushViewController:detailViewController animated:YES];
}