2010-05-15 51 views
0

之间传递数据I具有在plist中的网站的列表,当应用程序加载这个填充一个的tableview(这是一个导航控制器内)添加行的UITableView和Viewcontrollers

但我已经加入一个附加按钮来导航栏,然后创建另一个视图控制器来处理新网站的输入(如标题和URL)。这与联系人应用的外观非常相似。有一个表格视图,当你点击添加时,添加用户界面向上滑动。到目前为止,我已经完成了所有这些工作。

我的问题是当用户点击完成时会发生什么。 我可以添加网站到plist(每个网站是一个字典中的两个键,atm的plist) 但是,我怎么告诉tableView更新?表格视图还没有从主窗口中删除,只是在“屏幕”上添加了添加视图。

要求的另一种方式是,当你点击保存就添加联系人屏幕:(我的图像)

http://www.iphone-recovery.com/wp-content/uploads/2008/01/jcontact.jpg http://www.iphone-recovery.com/wp-content/uploads/2008/01/jcontact.jpg

如何新联系人的数据(XYZ公司的数据)得到显示上的tableview?

回答

0

使用通知是一个很好的解决方案。

另一个常用于iPhone应用程序的方法是,使原始表格视图为“添加”视图控制器的代表(通常以模态方式呈现),并让视图控制器在其委托上调用一致的方法,将调用reloadData并关闭一个模式控制器 - 这在逻辑上最好从首先提供它的对象完成。

+0

那么一个来自苹果的人在CS193P斯坦福大学课程上讨论过使用委托,所以我认为这是最好的方式。 – 2010-05-16 05:40:54

1

您可以使用NSNotifiactionCentre来通知其他视图。只需让tableViewController监听正确的NSNotification,并做出相应的响应。

当初始化tableViewController:

[myNSNotificationCentre addObserver:self selector:@selector(updateWithContactDictionary:) name:@"ContactAdded" object:theOtherViewController]; 

当您添加theOtherViewController联系人:

[myNSNotificationCentre postNotificationName:@"ContactAdded" object:self userInfo:userInfoStoredInAnNSDictionary]; 

然后只要你添加一个条目,该表将立即进行自我更新。