【问题标题】:How to pass data to root controller from one of the sub controller and dismiss all the sub controllers? [duplicate]如何将数据从子控制器之一传递到根控制器并关闭所有子控制器? [复制]
【发布时间】:2020-02-19 18:33:21
【问题描述】:

我有 4 个视图控制器,比如说 A、B、C 和 D,所有这些视图控制器都将被推送为 A->B->C->D。

我在“D”中有一个字典,我需要将其传递给字典“A”,我需要关闭除“A”控制器之外的所有控制器,以便对从“D”传递的接收数据执行一些操作。

根据我的要求在视图控制器之间传递数据并关闭所有子控制器的方法是什么?

【问题讨论】:

  • 再读一遍
  • 请以将数据从一个视图控制器传递到另一个视图控制器的所有形式读取重复的内容,并且通知适合此目的
  • 你说的对,解雇子控制器怎么样。
  • 有办法做到这一点,但我猜你正在使用导航视图控制器,所以你可以打电话给self..navigationController.popToViewController
  • 谢谢,你读好了我的问题,这就是我所缺少的,我正在寻找代码。

标签: ios objective-c uiviewcontroller


【解决方案1】:

在 ViewController A 中,在 ViewDidLoad 中创建通知

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

接下来在 View Controller A 中实现这个方法

-(void)getDictionaryFromD:(NSNotification*)notify {
   [[[[self view]window]rootViewController] dismissViewControllerAnimated:false completion:nil];
    NSDictionary *dict = [notify object];
}

现在在视图控制器 D 中,通过像这样调用此通知来传递字典

[[NSNotificationCenter defaultCenter] postNotificationName:@"deviceWidthChange" object:WHDict];

【讨论】:

  • 如何关闭子控制器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多