所以我看过一些有关如何执行此操作的教程,但实际上它们都涉及硬编码按钮和文本字段。我所做的是创建了一个视图控制器A
,带有嵌入式表视图。在导航栏中,我添加了一个按钮(“添加”)加上符号按钮。这个按钮我已经采取行动,以模态方式调出另一个视图控制器B
,其中我有一个文本字段和一个按钮Save
。
以下是供参考的图片:
所以我想做的是让用户能够按下视图控制器A
中的绿色加号按钮,然后它将调出视图控制器B
,我可以在其中输入用户名,按保存,它将自行解除(我知道如何执行此操作)并再次显示A
,但现在显示新添加的联系人。
我正在使用NSMutableArray来存储和填充表。我可以做到这一点的最简单,最简单的方法是什么,而不必像Apple docs Table View Programming Guide中所示那样硬编码按钮。我有两个单独的类A
我有Contacts
类,而B
我已将其指定为addContact
类。这两个类都只是视图控制器的子类。
答案 0 :(得分:0)
首先,我会推送第二个视图,而不是以模态方式呈现它。 对于Segue(第一个和第二个视图之间的连接器),您还可以附加标识符。
此外,您可以在推送视图之前在prepareForSegue方法中执行某些操作。 在这个方法中,我将传递数组和tableview,这样你可以添加用户名并在按下保存按钮时重新加载表。
答案 1 :(得分: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
)以生成新细胞并将其动画到位。