两个视图之间的参数传递
Posted
技术标签:
【中文标题】两个视图之间的参数传递【英文标题】:Parameter passing between two views 【发布时间】:2012-07-30 09:09:19 【问题描述】:我使用第一个视图(一个类),其中有一个按钮显示第二个视图(另一个类)。 显示如下:
listContactsViewController viewController * = [[listContactsViewController alloc] init];
UINavigationController * vc = [[UINavigationController alloc] initWithRootViewController: viewController];
[self presentModalViewController: vc animated: YES];
然后在第二个视图中,我选择行,然后我有一个“添加”按钮,可以将第一个视图显示为:
[self dismissModalViewControllerAnimated: YES];
我的问题是在第二个视图中我有一个 NSMutableArray 我想发送到第一个视图。
如果你有想法。
谢谢。
【问题讨论】:
尝试在你的第二个类中定义一个@property
,并在你像[myClass setMyPorperty:parameterWhatIWantToPass]
这样初始化你的新类后传递它。
【参考方案1】:
有很多方法可以解决这个问题。
快速:在您的第二个视图控制器中
listContactsViewController
定义一个delegate
属性,该属性包含对呈现控制器的引用(您希望使用在listContactsViewController
中创建的NSArray 的那个。然后,在关闭视图控制器之前,调用delegate
中的方法接口,以便您的呈现控制器可以获取数组的副本。
不过,这只是解决问题的一种快速解决方案,并不是最好的解决方案。
更正确的解决方案是创建一个“模型”对象,该对象可从应用程序中的任何控制器访问(单例可以),该对象包含相关数据:listContactsViewController
将数组存储到模型中;呈现控制器从那里获取它。
【讨论】:
【参考方案2】:使用委托和协议。
参考本教程:Passing data between views tutorial – using a protocol & delegate in your iPhone app.
【讨论】:
以上是关于两个视图之间的参数传递的主要内容,如果未能解决你的问题,请参考以下文章