我有两个ViewControls。 在FirstViewControl我有按钮, 在SecondViewControl我有TableView, 当我点击按钮时,它应该转到TableView(SecondViewControl)并添加一行,我怎样才能以编程方式完成。我没有得到足够的答案。任何人都可以帮助我
答案 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
。此外,对于此解决方案,您需要将数组返回到第一个控制器,与将其发送到第二个控制器时的过程相同。
如果要改进代码,则需要实现一些将视图与视图分开保存的对象。