6
当应用从后台返回时,为什么viewWillAppear没有被调用?
我正在编写一个应用程序,并且如果用户在通话中正在查看该应用程序,则需要更改视图。 我实现了以下方法: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; NSLog(@"viewWillAppear:"); _sv.frame = CGRectMake(0.0, 0.0, 320.0, self.view.bounds.size.height); } 但是当应用程序返回到前台时不会被调用。 我知道我可以实现: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarFrameChanged:) name:UIApplicationDidChangeStatusBarFrameNotification object:nil]; 但我不想这样做。我宁愿将所有布局信息都放在viewWillAppear:方法中,然后让它处理所有可能的情况。 我什至尝试从applicationWillEnterForeground:调用viewWillAppear:,但是我似乎无法查明当时的当前视图控制器。 有人知道处理此问题的正确方法吗?我确定我缺少一个明显的解决方案。