在Button操作时向TableView添加行

时间:2014-12-02 11:30:02

标签: ios xcode uitableview xcode6

我有两个ViewControls。 在FirstViewControl我有按钮, 在SecondViewControl我有TableView, 当我点击按钮时,它应该转到TableView(SecondViewControl)并添加一行,我怎样才能以编程方式完成。我没有得到足够的答案。任何人都可以帮助我

1 个答案:

答案 0 :(得分:0)

您应该做的第一件事是在NSMutableArray中创建FirstViewController属性。需要使用SecondViewController上显示的所有数据填充该数组。

@property (nonatomic, strong) NSMutableArray *arrayOfData;

还在NSMutableArray中创建SecondViewController属性。现在,当您有两个能够保存数据的属性时,可以在按下Button时转到步骤。

- (IBAction)buttonInCellPressed:(UIButton *)sender {
    [arrayOdData addObject:@"E.g. some string.";
    // Call transition to second view after button is clicked
    [self performSegueWithIdentifier: @"GoToSecondViewController" sender: self];
}

上面的代码会向数组中添加新元素,根据您要添加的内容,您需要进行一些自定义。一旦执行了segue,您将需要在实际显示视图之前复制数据。您将在prepareForSegue方法中执行此操作。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // This string needs to be equal to one that you put in performSegue and on that is in storyboard
    if ([[segue identifier] isEqualToString:@"GoToSecondViewController"])
    {
        SecondViewController *vc = [segue destinationViewController];
        // This is array in second view controller
        vc.arrayOfData = [NSMutableArray arrayWithArray:oldArray];
    }
}

现在,在新控制器中,使用arrayOfData填写TableView。此外,对于此解决方案,您需要将数组返回到第一个控制器,与将其发送到第二个控制器时的过程相同。

如果要改进代码,则需要实现一些将视图与视图分开保存的对象。