我知道在弹出/推送视图上不会调用viewWillAppear,但我真的需要这个方法。以下是我尝试的内容
我添加了UINavigationControllerDelegate并采用了
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
[viewController viewWillAppear:animated];
}
-(void)viewWillAppear
{
NSLog(@"Log");
}但仍未调用viewWillAppear
编辑
AppDelegate.m
self.navigationController = [[UINavigationController alloc]init];
[self.window setRootViewController:self.navigationController];
FirstView *fview = [FirstView]alloc]init];
[self.viewController pushViewController:fview animated:YES];
FirstView.m
....
-(void)viewWillAppear
{
NSLog(@"Logged");
}……
发布于 2012-02-10 21:22:48
线索就在这里:
[viewController viewWillAppear:animated];
}
-(void)viewWillAppear 你调用一个只接受一个参数的方法。但是您的方法没有这样的方法。用客观的C语言来说,这是一个完全不同的方法。
它应该看起来像这样:
-(void)viewWillAppear:(BOOL)animated {
// blah
}发布于 2012-02-10 20:38:16
你的window上有导航控制器吗?粘贴您的appdelegate.m
我的工作代码:
self.navController = [[[CustomNavigationController alloc] initWithRootViewController:[[[HomeViewController alloc] init] autorelease]] autorelease];
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];https://stackoverflow.com/questions/9227836
复制相似问题