两个视图之间的参数传递

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.

【讨论】:

以上是关于两个视图之间的参数传递的主要内容,如果未能解决你的问题,请参考以下文章

两个html的页面之间怎么传递参数啊

利用委托与事件进行两个窗体之间的参数传递实例

关于:url视图函数模板3者之间参数传递的理解

在 QT 中的两个 QWidget 表单之间传递参数

如何在视图之间传递@State var?

在两个堆栈之间传递参数 - React Native