2017-06-16 19 views
0

嗨我在我的应用程序中使用reveal view Controller。它在所有情况下工作正常。问题在于调用通知。我的reveal view中有6个前视图控制器。在所有view controllers我宣布具有相同名称的通知。我从SWrevealViewController.m文件中调用此通知。现在在所有视图控制器中调用通知操作。实际上,通知仅在视图控制器处于活动状态或处于活动视图控制器背后时才会被调用。使用SWRevealViewController时的通知问题

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

+0

你的问题不清楚我不明白'实际上只有当视图控制器处于活动状态或它在活动视图控制器后面才会调用通知。 问题来了,如果我打开剩余的视图控制器至少一次。如果我没有打开它们,那么通知不会在该视图控制器中调用' –

+0

好的。在右边的桌子上,我有工作,卡片,个人资料,地址。如果我选择作业,作业视图控制器将显示。我在所有4个视图控制器中声明了通知。一旦我显示了所有四个视图控制器。现在终于我在作业屏幕上了。现在我从Reveal视图中调用通知,然后通知只需在作业视图中触发。但它叫所有4个视图@安布 – phani

+0

简单,你可以显示你的通知addobserver,postnotification和相关的代码 –

回答

0

正如你所说,你已经声明同名的通知,那么你必须改变它!否则它会在每个视图控制器中调用。

比如你在一个视图控制器,如添加通知,

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

这里您的通知的名字NotifyTouploadImage那么你就不能在其他视图 - 控制保持相同的名称,在另一个视图 - 控制你可以改变它像,

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

sry lion并不是一个好习惯,如果你没有删除obeserver它会调用多次,我们更好的等待提问者的代码,可能我们会优化相同的代码 –

+0

我只是解释说通知的名称必须不同。必须删除观察者!但这里并不是主要关注点,所以我没有提到!因为问题与通知同名! @ Anbu.Karthik – Lion

+0

如果在调用通知时增加显示视图控制器的行数,则名称不同。 – phani