【问题标题】:Notification issues while using SWRevealViewController使用 SWRevealViewController 时的通知问题
【发布时间】:2017-11-18 17:43:38
【问题描述】:

您好,我在我的应用程序中使用reveal view Controller。它在所有情况下都可以正常工作。问题是在调用通知时。我的reveal view 中有 6 个前视图控制器。在所有view controllers 中,我声明了一个同名的通知。我从SWrevealViewController.m 文件中调用了这个通知。现在在所有视图控制器中调用通知操作。实际上,仅当视图控制器处于活动状态或它位于活动视图控制器的后面时才会调用通知。

如果我至少打开一次剩余的视图控制器,就会出现问题。如果我没有打开它们,则不会在该视图控制器中调用通知。

【问题讨论】:

  • 你的问题不清楚我不明白Actually notifications called only if view controllers in active state or it is in back of active view controllers. Issue comes if I opened remaining view controllers at least once. If I didn't open them then notification not called in that view controller
  • 好的。在右边的桌子上,我有工作、卡片、个人资料、地址。如果我选择 job ,将显示作业视图控制器。我在所有 4 个视图控制器中声明了通知。一旦我显示了所有四个视图控制器。现在我终于进入了工作屏幕。现在我从 Reveal 视图中调用了通知,然后通知只需要在作业视图中触发。但它调用了所有 4 个视图。@Anbu
  • 简单,能不能把你的notification addobserver,postnotification 及相关代码展示出来
  • 显示您的代码,说明您如何在所有视图中声明通知!

标签: ios objective-c swrevealviewcontroller nsnotifications


【解决方案1】:

正如您所说,您已声明具有相同名称的通知,那么您必须更改它!否则它将在每个视图控制器中被调用。

例如,您要在一个视图控制器中添加通知,例如,

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

这里你的通知名称是NotifyTouploadImage,那么你不能在另一个视图控制器中保持相同的名称,在另一个视图控制器中你可以改变它,

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

【讨论】:

  • sry lion 不是一个好习惯,如果你不删除 obeserver 它会调用多次,最好我们等待提问者代码,可能我们优化相同的代码
  • 我只是解释通知的名称必须不同。必须删除观察者!但在这里,这不是主要问题,这就是我没有提到的原因!因为问题与通知的名称相同! @Anbu.Karthik
  • 如果显示视图控制器中的名称不同,则调用通知时增加的行数。
  • 我不是说你的代码开放是错误的,我们最好使用不同的逻辑
  • @PhaniRaghu - 你能展示你的代码吗,一行代码就可以解决你的问题
猜你喜欢
  • 1970-01-01
  • 2020-02-10
  • 2017-05-20
  • 2020-04-02
  • 2017-07-11
  • 2016-11-15
  • 1970-01-01
  • 2016-04-15
  • 1970-01-01
相关资源
最近更新 更多