微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何防止notitifcation观察者从UIViewController中被弹出后,被称为?

如何解决如何防止notitifcation观察者从UIViewController中被弹出后,被称为?

我有2 UIViewController A和B从A I pushed B和B具有2 observersreachability。现在,当我弹出 B 并在此之后来到 A 时,如果网络关闭,则调用在 VC B 中编写的方法。我无法推测出来,如果B是已经popped {从{1}}它的方法是怎么叫?

注意 -

  1. 我不具有VC A.林为VC乙任何属性总是 每当创建从VC甲推VC B的新实例。
  2. 我也知道我可以在viewWilldisappear删除观察者但我仍然希望 知道为什么VC B被弹出后,即使观察者被调用

解决方法

如果您使用在 viewWillAppear 打开并在 viewWillDisappear 以及其他相关位置关闭的标志,例如在 isMovingFromParentViewController 或根据您的呈现方式适用的内容。然后您可以在观察者触发时标记您的操作。这是大纲。

@interface ViewController ()

@property (nonatomic) BOOL flag;

@end

@implementation ViewController

// Action triggered by observer
- ( void ) someAction
{
    if ( self.flag )
    {
        // do it
    }
}

// Switch on
- ( void ) viewWillAppear:( BOOL ) animated
{
    [super viewWillAppear:animated];
    self.flag = YES;
}

// Switch off
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.flag = NO;
}

@end

这很简单。易于维护和调试,如果您需要在某个阶段基于其他原因打开或关闭操作,也很容易适应。

PS:你真的需要展示一些代码......如果不提供任何代码,很难给出更具体的答案。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。