相关疑难解决方法(0)

为什么当应用程序从后台返回时,不会调用viewWillAppear?

我正在编写应用程序,如果用户在通话时查看应用程序,我需要更改视图.

我已经实现了以下方法:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    NSLog(@"viewWillAppear:");
    _sv.frame = CGRectMake(0.0, 0.0, 320.0, self.view.bounds.size.height);
}
Run Code Online (Sandbox Code Playgroud)

但是,当应用程序返回到前台时,它不会被调用.

我知道我可以实现:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarFrameChanged:) name:UIApplicationDidChangeStatusBarFrameNotification object:nil];
Run Code Online (Sandbox Code Playgroud)

但我不想这样做.我宁愿将所有布局信息放在viewWillAppear:方法中,让它处理所有可能的场景.

我甚至试图从applicationWillEnterForeground:调用viewWillAppear:但我似乎无法确定当前哪个是当前的视图控制器.

有人知道处理这个问题的正确方法吗?我确定我错过了一个明显的解决方案.

iphone objective-c viewwillappear ios

270
推荐指数
5
解决办法
13万
查看次数

标签 统计

ios ×1

iphone ×1

objective-c ×1

viewwillappear ×1