将关闭数据传递给导航控制器外部的视图控制器?

时间:2017-01-19 00:36:19

标签: ios swift uinavigationcontroller

如上图所示,我有两个视图控制器,其中一个位于导航控制器内。当在控制器A中按下按钮时,控制器B通过导航控制器呈现并以模态显示。当在B?

上调用解除功能时,我是否可以将数据从控制器B传回控制器A.

3 个答案:

答案 0 :(得分:0)

您可以使用委托模式或回调来执行此操作

答案 1 :(得分:0)

如果您正在使用故事板并使用segue进行导航,那么展开segue将为您执行此操作。这是一个应该有用的简单教程:

https://www.andrewcbancroft.com/2015/12/18/working-with-unwind-segues-programmatically-in-swift/

此堆栈溢出答案有关于此主题的更详细和有价值的信息

Passing Data between View Controllers

答案 2 :(得分:0)

您可以通过NSNotificationCentre。

首先,您需要在ViewControllerA中添加Notification Observer及其选择器,如下所示:

[[NSNotificationCenter defaultCenter] addObserver:self
                                          selector:@selector(receiveTestNotification:) name:@"notificationName"
                                               object:nil];

-(void) receiveTestNotification:(NSNotification*)notification
{
  NSDictionary* userInfo = notification.userInfo;
  NSLog (@"%@",userInfo);
}

现在在ViewController B中,你需要发布如下通知:

 NSDictionary* userInfo = your data ;
 NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
[nc postNotificationName:@"notificationName" object:self userInfo:userInfo];