猿问

将数据传递回上一个viewcontroller

将数据传递回上一个viewcontroller

我正在尝试将数据传递回以前的viewController。

有谁知道如何将数据从ViewController B传递回ViewController A?所以我想要一个字符串'从'BIDAddTypeOfDealViewController转到BIDDCCreateViewController。用户编辑了viewController B,我想在ViewController A中返回已编辑的数据然后我使用它。

我正在使用此答案的“传递数据”部分。我的不同之处:第3点和第6点只是在弹出视图时提及,所以我将该代码放在viewWillDisappear中。我认为这是正确的吗?同样在Point 6,我没有使用nib进行初始化,因为它已经过时了。我正在使用故事板。而且我没有添加最后一行,因为我不相信我会推动它。按我的故事板上的按钮已经让我前进了。

我认为问题可能出现在BIDDCCreateViewController中,我有方法,但我无法运行它。要运行一个方法,它应该[自我方法]。我无法做到这一点。那就是我猜的。

它编译并运行良好,没有任何记录,所以我不知道它是否有效。



开满天机
浏览 669回答 3
3回答

人到中年有点甜

您可以使用代理人。因此,在ViewController B中,您需要创建一个将数据发送回ViewController A的协议。您的ViewController A将成为ViewController B的委托。如果您不熟悉目标C,请查看什么是代表。在ViewControllerB.h中创建协议:#import&nbsp;<UIKit/UIKit.h>@protocol&nbsp;senddataProtocol&nbsp;<NSObject>-(void)sendDataToA:(NSArray&nbsp;*)array;&nbsp;//I&nbsp;am&nbsp;thinking&nbsp;my&nbsp;data&nbsp;is&nbsp;NSArray,&nbsp;you&nbsp;can&nbsp;use&nbsp;another&nbsp;object&nbsp;for&nbsp;store&nbsp;your&nbsp;information.&nbsp;@end@interface&nbsp;ViewControllerB&nbsp;:&nbsp;UIViewController@property(nonatomic,assign)id&nbsp;delegate;ViewControllerB.m@synthesize&nbsp;delegate;-(void)viewWillDisappear:(BOOL)animated{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[delegate&nbsp;sendDataToA:yourdata];}在ViewControllerA中:当你转到ViewControllerB时ViewControllerA&nbsp;*acontollerobject=[[ViewControllerA&nbsp;alloc]&nbsp;initWithNibName:@"ViewControllerA"&nbsp;bundle:nil];acontollerobject.delegate=self;&nbsp;//&nbsp;protocol&nbsp;listener[self.navigationController&nbsp;pushViewController:acontollerobject&nbsp;animated:YES];并定义你的功能:-(void)sendDataToA:(NSArray&nbsp;*)array{ &nbsp;&nbsp;&nbsp;//&nbsp;data&nbsp;will&nbsp;come&nbsp;here&nbsp;inside&nbsp;of&nbsp;ViewControllerA}编辑:您可以查看此示例:如何将数据传递回上一个viewcontroller:Tutorial链接

慕森卡

甲短和更简单的比协议/委托方法是创建一个闭合:用于在我的情况下发回一个字符串。在ViewControllerA中:override&nbsp;func&nbsp;prepare(for&nbsp;segue:&nbsp;UIStoryboardSegue,&nbsp;sender:&nbsp;Any?)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;let&nbsp;viewControllerB&nbsp;=&nbsp;segue.destination&nbsp;as?&nbsp;ViewControllerB&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;viewControllerB.callback&nbsp;=&nbsp;{&nbsp;message&nbsp;in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Do&nbsp;what&nbsp;you&nbsp;want&nbsp;in&nbsp;here! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}}在ViewControllerB中:var&nbsp;callback&nbsp;:&nbsp;((String)&nbsp;->&nbsp;Void)?@IBAction&nbsp;func&nbsp;done(sender:&nbsp;AnyObject)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;callback?("Hi") &nbsp;&nbsp;&nbsp;&nbsp;self.dismiss(animated:&nbsp;true,&nbsp;completion:&nbsp;nil)}
随时随地看视频慕课网APP
我要回答