1

所以我已经看到了一些关于如何做到这一点的教程,但实际上它们都涉及硬编码按钮和文本字段。我所做的是创建了一个A带有嵌入式表格视图的视图控制器。在导航栏中,我添加了一个按钮(“添加”)加符号按钮。这个按钮我已经做出了它的动作,以模态方式调出另一个视图控制器B,其中我有一个文本字段和一个按钮Save

这是一张供参考的图片: 在此处输入图像描述

所以我想做的是让用户能够按下视图控制器中的绿色加号按钮A,然后它会弹出视图控制器B,我可以在其中输入用户名,按保存,它会自行关闭(我知道如何这样做)并A再次显示,但现在显示新添加的联系人。

我正在使用 NSMutableArray 来存储和填充表。什么是我可以做到这一点的最简单和最简单的方法,而不必像苹果文档Table View Programming Guide中所示的那样硬编码按钮。我有两个单独的课程,因为A我有Contacts课程并且B我已将其指定为addContact课程。这两个类都是简单的视图控制器子类。

4

2 回答 2

0

首先,我会推送第二个视图,而不是模态地呈现它。对于 Segue(第一个和第二个视图之间的连接器),您还可以附加一个标识符。

https://developer.apple.com/library/ios/recipes/xcode_help-interface_builder/articles-storyboard/StoryboardSegue.html

此外,您可以在推送视图之前在 prepareForSegue 方法中执行一些操作。在这种方法中,我将传递数组和表格视图,这样您就可以添加用户名并在按下保存按钮时重新加载表格。

http://nscookbook.com/2013/01/ios-programming-recipe-5-passing-values-between-segues-with-prepareforsegue/

于 2013-11-02T22:03:47.350 回答
0

您的问题范围不是很清楚,但假设您知道如何将保存的值传递回父视图控制器,您将使用以下内容插入表格行:

- (void)addItem:(id)item { // where item is the object being added to the data model
    [self.items addObject:item]; // where self.items is your mutable array
    NSIndexPath *indexPath = [NSIndexPath indexPathForItem:self.items.count - 1 inSection:0];
    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];
}

insertRowsAtIndexPaths:withRowAnimation:方法通知表格视图您已在给定的索引路径处向数据模型添加了新项目,然后它将调用您的数据源方法,包括cellForRowAtIndexPath,以生成新单元格并将其动画放置到位。

于 2013-11-02T22:08:54.547 回答