问题描述
我有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:你真的需要展示一些代码......如果不提供任何代码,很难给出更具体的答案。