对多个视图控制器中的一个观察者使用 NSNotificationCenter 选择器

2024-02-03

我可以使用选择器吗getUpdate:在多个视图控制器中?我正在注册我的LevelViewController作为双方的观察者GameViewController and WinViewController。后 2 个视图控制器都有一个后退按钮(按下该按钮后,您将返回到LevelVC),通知的目的是告诉LevelVC是否更新集合视图单元格(通过viewWillAppear:方法)当按下后退按钮时。

In viewWillAppear:,我不想调用两个单独的方法(一个来自GameVC和一个来自WinVC)为了获得我的更新,我只使用了一种可以在任一情况下使用的流畅方法。

这就是我的意图(在LevelVC):

- (void)viewDidLoad
{
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(getUpdate:)        
                                                 name:@"getUpdateForCell" 
                                               object:nil];
}

并纳入

- (void)getUpdate:(NSNotification *)notification {
    NSDictionary *data = [notification userInfo];
    // pop
}

两次...一次GameVC,另一个在WinVC.

这可能吗?或者我应该只发出两个单独的通知?


您可以创建自己的NSDictionary并作为值传递userInfo以确定哪个UIViewController你来自并使用适当的方式处理这种情况if陈述。

或者

当后退按钮出现时,您可以使用委托来执行事件,并对前一个按钮执行适当的操作UIViewController。我个人更喜欢这种方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对多个视图控制器中的一个观察者使用 NSNotificationCenter 选择器 的相关文章

随机推荐

  • 警告:未将分支主设置为其自己的上游

    我正在尝试将 git 分支设置为上游 但低于警告 Command git checkout master git branch set upstream to master 警告 未将分支主设置为其自己的上游 我该如何解决 这是否意味着它已
  • PHP Switch 语句

    switch sort case abc order by subject ASC break case fn order by u username ASC break case rd order by p posted on DESC
  • 将 ssis 中的 sql server 查询输出导出到文本文件,包括列标题

    我一直在尝试将 SqlServer sql 查询 存储过程 的输出导出到文本文件 我使用带有 OLEDB 源和平面文件目标的数据流任务来实现它 我还想在文本文件中获取列标题以及查询结果 但我不知道如何包含列标题 我想在 SSIS 中动态地执
  • 函数式编程中的引用透明性

    我是 JS 新手 正在学习函数式编程 并遇到了 引用透明度 这个术语 另外 我发现了这样的说法 引用透明度表明用纯函数的值替换纯函数是安全的 这是否意味着只要函数变热 使用 RT 就可以让 JIT 编译器轻松地用函数的返回值替换函数 真的吗
  • 如何跨多个页面传递多个变量?

    我的网站涉及用户通过多页表单提交数据 我可以将一页上提交的数据直接传递到下一页 但是如何将其发送到之后的页面呢 这是我正在做的事情的一个非常简化的版本 Page 1 Page 2
  • 在 HTML+CSS 中的活动菜单项下添加箭头

    我正在尝试生成如下菜单 菜单中有多个项目 活动的项目后面有一个箭头 菜单项是类似以下代码的标签 div class menuCenter div class linksWrapper a href Home a a class menuCe
  • Firefox 中调整大小时背景图像下的线条闪烁

    我正在构建一个网站 其标题中有一个全宽背景图像 可随页面调整大小 在 Firefox 中调整图像大小时 图像下方会出现一条不寻常的闪烁水平线 该线不会完全显示 但会在尺寸更改时闪烁 该线出现在背景图像的底部 而不是标题元素的底部 仅当我在
  • 尝试使用 .toUpperCase() 将字母转换为大写...不起作用?

    我试图使用 toUpperCase 将数组中的字符转换为大写 但它不起作用 我很确定我的逻辑是正确的 所以不确定为什么它不起作用 var test hello 3 function LetterChanges str var testArr
  • 如何在Python中水平放置单选按钮

    AANTAL 1 1 2 2 3 3 4 4 5 5 6 6 v StringVar v set 1 for text mode in AANTAL but Radiobutton Main padx 20 pady 10 font ari
  • Magento 和 Paypal 税务舍入问题

    我对 Paypal 和 Magento 1 7 0 2 有一些舍入问题 网站上的所有价格均含税 税费按 20 增值税 计算 我去结账 一切都正确 然后我会点击下订单 Paypal 就会像这样 这是不正确的 因为现在总计少了 1p 这似乎是由
  • 表单元素未出现在 $scope 中

    这是我的表格的开始 div 这是我的控制器 app controller Customer scope function scope alert scope CustomerForm scope CustomerForm未定义 表格不应该添
  • RHEL 上的 Docker CE - 要求:container-selinux >= 2.9

    我正在尝试安装Docker CE on RHEL使用这个link https stackoverflow com questions 42981114 install docker ce 17 03 on rhel7 这是我的 RHEL 版
  • 使用 execv(C 语言)从 Linux 命令提示符运行命令

    到目前为止 我唯一感到困惑的部分是如何设置 execv 并使用第一个参数作为当前工作目录 我已经尝试过两个 和 都没有在屏幕上执行任何操作 也一样 和 我对如何让 execv 运行这样的事情感到困惑 prog ls t al 并让它在程序执
  • Scala 按索引过滤列表

    我想用函数式的方式来编写它 我能做的最好的就是 list zipWithIndex filter tt Tuple2 Thing Int gt tt 2 3 0 unzip 1 获取元素 0 3 6 有没有更易读的 Scala 习惯用法 如
  • 有没有办法从 Flurry API 获取报告的用户 ID?

    我有一个使用 Flurry 的 iOS 游戏 因此我通过 Flurry setUserID USER ID 向 Flurry 发送每个玩家的唯一 ID 几个小时后 我从 Flurry 页面 gt 事件 gt 事件日志 gt 获取此 ID下载
  • 在 Git 中强制添加子模块内容

    我在一所学校编码 要求我们使用 git 将所有工作提交到他们的服务器 每个作业都有自己的文件夹 该文件夹有自己的 git 目录 我试图将父文件夹推送到我的 github 但是当我推送时 它实际上并没有上传文件夹内的代码 因为它被视为子模块
  • 在 C# 中获取输入的正确方法是什么,Convert 与 Parse

    我看到了一些在 C 中获取用户输入的其他方法 这真的很令人困惑 我可以使用这两种方式来获取输入还是仅用于浮动 是否有更多方式获取输入 float myAge myAge Convert Toint64 Console ReadLine vs
  • 从数据库中删除满足条件的条目的最有效方法是什么?

    AFAIK 没有直接的方法可以使用谓词删除实体 例如 DbSet RemoveWhere gt 我尝试了几种删除方法 但不知道哪种方法最有效 你能指出我正确的方向吗 我尝试的第一个也是最基本的事情是 context Users Remove
  • JavaScript 中的数字格式与 C# 类似

    有没有一种简单的方法可以在 JavaScript 中格式化数字 类似于 C 或 VB NET 中可用的格式化方法ToString format provider or String Format 一般来说 在 JavaScript 中设置数
  • 对多个视图控制器中的一个观察者使用 NSNotificationCenter 选择器

    我可以使用选择器吗getUpdate 在多个视图控制器中 我正在注册我的LevelViewController作为双方的观察者GameViewController and WinViewController 后 2 个视图控制器都有一个后退