在不给出我所有的代码示例的情况下,我将简要介绍一下。
你们中有没有人在viewWillAppear第一次出现的时候就被调用了?
我对我所有的观点都有这个问题。
例如:当我的应用程序启动时,我会进入主菜单StartView。(调用viewWillAppear)然后我按下一个按钮,它将显示一个导航控制器(调用viewWillAppear)。然后我返回到主菜单(它没有被调用),然后我再次按下相同的导航控制器,它也没有被调用。
如果有人能给我指个地方就太棒了,我已经找了两天了……
另外,如果你需要更多的代码样本,我可以给你一些。
要进一步阅读,请阅读:
这就是我如何调用我的导航控制器:
PremierSoinsAppDelegate *AppDelegate = (PremierSoinsAppDelegate *)[[UIApplication sharedApplication] delegate];
UIView *newView = [AppDelegate.navigationController view];
[newView setFrame:CGRectMake(320.0f, 0.0f, 320.0f, 480.0f)];
[UIView beginAnimations:@"RootViewController" context:nil];
[UIView setAnimationDuration:0.3];
newView setFrame:CGRectMake(0.0f, 0.0f, 320.0f, 480.0f)];
UIView commitAnimations];
[AppDelegate.window addSubview:newView];
[AppDelegate.window makeKeyAndVisible];这就是我返回菜单的方式:
PremierSoinsAppDelegate *AppDelegate = (PremierSoinsAppDelegate *)[[UIApplication sharedApplication] delegate];
UIView *newView = [AppDelegate.startViewController view];
newView setFrame:CGRectMake(-320.0f, 0.0f, 320.0f, 480.0f)];
UIView beginAnimations:@"StartViewController" context:nil];
UIView setAnimationDuration:0.3];
newView setFrame:CGRectMake(0.0f, 0.0f, 320.0f, 480.0f)];
[UIView commitAnimations];
[AppDelegate.window addSubview:newView];
[AppDelegate.window makeKeyAndVisible];非常感谢。
发布于 2010-03-31 01:34:58
您可以在您的导航控制器中实现UINavigationControllerDelegate来向下传播viewWillAppear:消息。您可以像这样实现消息:
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if ([viewController respondsToSelector:@selector(viewDidAppear:)]) {
[viewController viewDidAppear:animated];
}
}请注意,这是viewDidAppear而不是ViewWillAppear版本,但它们基本上是相同的。
但是,您应该注意到,您需要这样做的事实可能是控制器/视图代码中有其他错误的迹象,您可能希望重新确定问题,为我们提供更多上下文来回答它。特别地,我假设在你给我们的代码之外的某个地方,你会像通常的导航控制器一样推动和弹出视图控制器。
发布于 2010-03-31 01:22:47
viewWill/DidAppear:只有在使用UINavigationController或UITabBarController (或者实际上是任何系统提供的viewControlller管理类)来操作视图时才会调用。如果您手动执行此操作(就像您在第二个代码片段中所做的那样),这些消息将不会被发送。
https://stackoverflow.com/questions/2547165
复制相似问题