indexPath.row始终返回0

时间:2014-07-12 08:31:05

标签: ios objective-c uitableview

我注意到有关于这个问题的几个主题,但每个都依赖于代码,所以我决定用我的代码启动我自己的线程。这是代码:

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

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

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }
    Article *article = [articles objectAtIndex:indexPath.row];
    cell.textLabel.text = article.articleTitle;
    return cell;
}



- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"showArticleDetail"]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        ArticleDetailViewController *destViewController = segue.destinationViewController;
        destViewController.article = [articles objectAtIndex:indexPath.row];
    }
}

任何帮助?

谢谢!

1 个答案:

答案 0 :(得分:-1)

在您的代码中

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

aricles count为零或一。所以我使用NSLog来检查articles count的值。

Alloc你的文章。如果它是NSMutableArray,那么alloc就是这样。

NSMutableArray *articles = [[NSMutableArray alloc] init];

设置@interface MyView : UIView <UITableViewDelegate, UITableViewDataSource> 在.h文件中

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showLocationDetails"])

    {
        LocationDetailsViewController *vc = [segue destinationViewController];
        indexPathSelected = [self.tableView indexPathForCell:sender].row;
        vc.location = _locationsArray[indexPathSelected];

    }
}

相应地设置你的segue方法。