繁体   English   中英

将数据从UIViewController传递回1个UIViewController

[英]Passing data from UIViewController to 1 back UIViewController

所以我有这个UINavigationController,我是第一个移到下一个视图,而不是我想点击“后退”按钮并使用保存到第二个视图中的“ strAddress”中的数据返回第一个视图。 我想在“ lblShowStr.text”的第一个视图上显示数据。

我该怎么做呢? 我搜索了所有的网络,找到了一些写信的人,但是不明白他们在那儿被告知了什么。

谢谢!

您可以通过以下方式在导航堆栈中获得对先前viewController的引用:

NSArray *viewControllers = self.navigationController.viewControllers;
MyViewControllerClass *previousController = [viewControllers objectAtIndex:[viewControllers count] - 2];

然后,您可以在“上一个”视图控制器上设置一个属性来存储您的文本,甚至可以像这样直接设置标签出口的文本:

previousController.lblShowStr.text = self.strAddress;

这不是最佳方法(最佳方法涉及创建自定义委托协议或使用NSNotificationCenter),但这是最简单的方法。

在第一个视图控制器中,您可能具有一个名为strAddress的NSString属性。 并在每次视图出现时将该字符串放入lblShowStr.text中。

在您的第二个视图控制器中,您可能具有指向一个视图控制器实例的属性。 实例化第二个视图控制器时,可以将其上的属性分配给第一个视图控制器。

secondViewController.firstViewController = self; 或[secondViewController setFirstViewController:self];

然后,当用户按下后退按钮时,将为第一个视图调用viewDidAppear并更新字符串。

我假设您不想将此数据存储在其他任何地方,例如在模型或nsuserdefaults等中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM