0

私のtableViewをdetailtableViewに接続すると、detailtableViewが一歩遅れているという「エラー」が発生します。たとえば、mastertableView の 2 番目のセルをクリックすると、1 番目のセルの詳細情報が表示されます。私の問題を理解してください。

私の.mを参照してください。

#import "GuideTableViewController.h"
#import "GuideDetailTableViewController.h"

@interface GuideTableViewController (){
    NSArray *guide;

}
@property (weak, nonatomic) IBOutlet UITableView *tableView;

@end

@implementation GuideTableViewController

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


//JSONmetod
- (void) loadJSON{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        //code
        NSData *data = [NSData dataWithContentsOfURL:[NSURL     URLWithString:@"https://dl.dropbox.com/u/100670549/test.json"]];

        NSError *error;

        if (data)
        {

            guide = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];

            for (NSDictionary *dictionary in guide){
                NSLog([dictionary description]);
            }


        }else
        {
            NSLog(@"Could not load data");
        }




            dispatch_sync(dispatch_get_main_queue(), ^{
                // code
                [self.tableView reloadData];
            });


    });


    }




- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    //Anropa json

    [self loadJSON];
}

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


//TableView
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return guide.count;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath     *)indexPath{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];


    NSDictionary *dict = [guide objectAtIndex:indexPath.row];
    cell.textLabel.text = [dict valueForKey:@"title"];

    return cell;
}


//Till detailView

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    if ([segue.identifier isEqualToString:@"showStay"]){
        GuideDetailTableViewController *tvc = [segue destinationViewController];
        NSIndexPath *index = sender;
        NSDictionary *dict = [guide objectAtIndex:index.row];

        tvc.stay = dict;
    }
}

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

    [self performSegueWithIdentifier:@"showStay" sender:indexPath];


}




@end

前もって感謝します!

4

1 に答える 1

1

Delegate メソッドdidDeselectRowAtIndexPathの代わりに使用した、一般的なオートコンプリートの間違いです。didSelectRowAtIndexPath

于 2013-01-22T13:36:16.613 に答える