UITableview从另一个类添加数据

时间:2011-06-14 02:58:38

标签: iphone model-view-controller uitableview object-model

好的,我有UITableViewUINavigationController UIBarButtonSystemItemAdd,当按下添加按钮时,它会将用户带到包含一些字段的新视图。我希望能够获取用户放在这些字段中的信息并将其显示在表格视图中。我希望用户能够根据需要添加任意数量的项目。

现在我想到了它,有点像联系人应用程序。用户填写联系人,然后当他们返回主列表时,新联系人就在那里。

这样做的最佳方法是什么。我尝试了NSUserDefaults和一堆arrays,但这真的很混乱。感谢。

3 个答案:

答案 0 :(得分:1)

我可以想到处理这个问题的几种方法。最简单和最好的方法是使用视图控制器的模型演示而不是推送到它,就像iPhone上的联系人应用程序一样。这样,您可以访问tableview视图控制器所需的所有数据,而不是尝试来回传递它。一旦用户完成创建视图控制器,模型视图就会被忽略,您可以从tableview中添加。开发人员文档:http://developer.apple.com/library/ios/ipad/#featuredarticles/ViewControllerPGforiPhoneOS/AboutViewControllers/AboutViewControllers.html%23//apple_ref/doc/uid/TP40007457-CH112-SW16

答案 1 :(得分:0)

您是否正确使用了NSUserDefaults?像这样使用。

在一堂课中:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]
[prefs setInteger:1 forKey:@"integerKey"];

在另一堂课:

 NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
 NSInteger myInt = [prefs integerForKey:@"integerKey"];

//Now myInt has the value 1.

您也可以使用NSNotification并传递NSDictionary类型:

NSDictionary *info = [NSDictionary dictionaryWithObject:@"Brad Pitt" forKey:@"User Name"];


[[NSNotificationCenter defaultCenter] postNotificationName:@"UserNameNotification" object:self userInfo:info];

然后你可以添加观察者并为相应的选择器编写方法。

答案 2 :(得分:0)

最好的方式是UIController的模型演示风格。当用户关闭视图时,您的表视图会被委托方法通知,您可以在表视图中添加该数据。

现在,如果您不想使用模型视图样式,则可以使用NSUserDefault。

 Thats what I was trying to do, but the user could ultimatly enter in hunderds of data.

您不必考虑它应该首先重置NSUserDefault。然后将所有数据保存在NSUserDefault中,然后从表视图中获取该数据。

[NSUserDefaults resetStandardUserDefaults];

你可以做的更多事情是在Delegate中创建一个变量并在其中保存数据并在表视图中获取它。但我不建议你这样做。