如何解决如何防止notitifcation观察者从UIViewController中被弹出后,被称为?
我有2 UIViewController
A和B从A I pushed
B和B具有2 observers
为reachability
。现在,当我弹出 B 并在此之后来到 A 时,如果网络关闭,则调用在 VC B 中编写的方法。我无法推测出来,如果B是已经popped
{从{1}}它的方法是怎么叫?
注意 -
- 我不具有VC A.林为VC乙任何属性总是 每当创建从VC甲推VC B的新实例。
- 我也知道我可以在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 举报,一经查实,本站将立刻删除。