【问题标题】:how to update tableview cells using array from nsobject class如何使用 nsobject 类中的数组更新 tableview 单元格
【发布时间】:2015-10-01 02:01:28
【问题描述】:

当我尝试从详细视图控制器接收数据时,主视图控制器未添加新单元格。我想根据详细视图控制器中的数组更新主视图控制器中的表视图。取消按钮也不能使用超过一次

这是保存和取消按钮的主视图控制器代码。

 (void)detailControllerSaved:(DetailViewController *)controller {

    if ([self.presentedViewController isEqual:controller]) {

        [self.moviesToDisplay addObject:controller.detailItem];
        [self dismissViewControllerAnimated:YES
                                 completion:nil];

        // it's a modal view
    } else {

        // it's a navigation view
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

        self.moviesToDisplay[indexPath.row] = controller.detailItem;
        [self.navigationController popViewControllerAnimated:YES];
    }

    [self.tableView reloadData];
}

(void)detailControllerCanceled:(DetailViewController *)controller {

    if ([self.presentedViewController isEqual:controller]) {

        // it's a modal view
        [self dismissViewControllerAnimated:YES
                                 completion:nil];

    } else {

        // it's a navigation view
        [self.navigationController popViewControllerAnimated:YES];
    }
}

This is my array list 



(void) loadSampleContent {

    NSArray *movies = @[
                        [Films movieWithGenre:@"Comedy" title:@"LittleMan " date:@"2006" rate:@"7.5"],

    self.moviesToDisplay = [[NSMutableArray alloc] initWithArray:movies];
}



and this is the code in the detail view controller 




(void)viewWillAppear:(BOOL)animated {
    if(self.detailItem) {
        self.movieTitle.text = self.detailItem.movieTitle;
        self.genreField.text = self.detailItem.movieGenre;
        self.movieRate.text = self.detailItem.movieRate;
        self.yearOfMovie.text = self.detailItem.movieDate;
    }
}

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

 (IBAction)Save:(id)sender {
    self.detailItem =
    [Films movieWithGenre:self.genreField.text title:self.movieTitle.text date:self.yearOfMovie.text rate:self.movieRate.text];
    [self.delegate detailControllerSaved:self];
}
 (IBAction)cancel:(id)sender {
    [self.delegate detailControllerCanceled:self];
}

【问题讨论】:

    标签: ios objective-c arrays


    【解决方案1】:

    我认为您在收到来自 Detail viewcontroller 的数据后错过了重新加载表。尝试在此代码中在 mastercontroller 中添加 reload tableview:

    if ([self.presentedViewController isEqual:controller]) {

        [self.moviesToDisplay addObject:controller.detailItem];
        [self dismissViewControllerAnimated:YES
                                 completion:nil];
    
        // it's a modal view
    } 
    

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多