从另一个viewController更新tableView中使用的属性

时间:2014-07-03 23:48:22

标签: ios objective-c uitableview properties

我有FirstViewControllerSecondTableViewController。在SecondTableViewController.m中,我在cellForRow...方法中创建了一个单元格,其中cell.textLabel.text是来自NSInteger属性(" count")的字符串SecondTableViewController

我想在FirstViewController中添加一个按钮来增加count的值。

我尝试制作FirstViewController的属性然后使用它:

@property SecondTableViewController *viewController;

- (IBAction)buttonTouched:(id)sender {
    self.viewController.count++;
    [self.viewController.tableView reloadData];
}

但这种方式不起作用。 count仍然是零的原始值。我还在viewWillAppear中重新加载了表格,但仍然没有。我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

用作属性的计数可能是您出错的地方,因为count是一个返回基础框架中找到的数组中对象数的方法。还要记住,如果要将整数存储到字符串对象中,请尝试以此格式存储它。

cell.textlabel.text = [NSString stringWithFormat: @"%i", count];

希望这有帮助

答案 1 :(得分:0)

修改

Its the <code>FirstViewController</code>, in which I had passed only one object reference of <code>SecondTableViewController</code> Its the <code>SecondTableViewController</code> in which you only need to implement <code>viewWillAppear</code> method and reload the table

查看这两个图像并实现类似的逻辑并获得解决方案。

-----新编辑结束-----

<强> OLD

我认为您尚未为其SecondTableViewController方法中的self.viewController引用分配和分配FirstViewController的{​​{1}}内存,即

viewDidLoad

并在执行按钮点按后将相同的引用推送到-(void) viewDidLoad //In FirstViewController { self.viewController = [[SecondTableViewController alloc] init]; } 堆栈,以增加navigationController count变量的计数。

如果您不清楚,请发表评论。

答案 2 :(得分:0)

尝试以下

firstViewController.h

@interface DMFirstViewController : UIViewController

@property (nonatomic, strong) DMSecondViewController * secondController;

- (IBAction)buttonPressed:(id)sender;

@end



firstViewController.m

- (IBAction)buttonPressed:(id)sender
{
    ++self.secondController.count;
    [self.navigationController pushViewController:self.secondController animated:YES];

}


secondViewController.h

@property (nonatomic) int count;


secondViewController.m

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
     NSLog(@"%d", self.count);


}