Tag: viewwillappear

viewWillAppear,viewDidAppear没有被调用,没有发射

(这既是问题又是答案,因为需要相当多的挖掘才能find真正的答案。) 症状: viewWillAppear , viewDidAppear没有在我的UIViewController中被调用。 原因:在UIViewControllerembeddedUINavigationController或UITabBarController (我的情况)以某种方式中断调用这些方法。 解决scheme:在包含上述UINavigationController / UITabBarController的UIViewController中手动调用它们。 例如(假设projectNavigationController是你的UINavigationController ): – (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [projectNavigationController viewWillAppear:animated]; } – (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [projectNavigationController viewWillDisappear:animated]; } – (void)viewDidAppear:(BOOL)animated { [超级viewDidAppear:animation]; [projectNavigationController viewDidAppear:animated]; } – (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; [projectNavigationController viewDidDisappear:animated]; } 在我的情况下,我有一个内部的UITabBarController ,我相应地调用了方法,所有都解决了。 (解决scheme归因: http : //davidebenini.it/2009/01/03/viewwillappear-not-being-called-inside-a-uinavigationcontroller/ )

UIViewController viewDidLoad vs. viewWillAppear:什么是正确的分工?

我一直都不清楚应该分配给viewDidLoad与viewWillAppear的任务types:在UIViewController子类中。 例如,我正在做一个应用程序,我有一个UIViewController子类访问服务器,获取数据,喂给一个视图,然后显示该视图。 viewDidLoad与viewWillAppear什么viewWillAppear ?

为什么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:方法中,让它处理所有可能的场景。 我甚至试图调用viewWillAppear:从applicationWillEnterForeground :,但我似乎无法指出哪一个当前的视图控制器在那一点。 有没有人知道处理这个问题的正确方法? 我确定我错过了一个明显的解决scheme。