首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不调用viewWillAppear

不调用viewWillAppear
EN

Stack Overflow用户
提问于 2012-02-10 20:32:58
回答 2查看 1.6K关注 0票数 0

我知道在弹出/推送视图上不会调用viewWillAppear,但我真的需要这个方法。以下是我尝试的内容

我添加了UINavigationControllerDelegate并采用了

代码语言:javascript
复制
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
       [viewController viewWillAppear:animated];
}

-(void)viewWillAppear
{
    NSLog(@"Log");
}

但仍未调用viewWillAppear

编辑

代码语言:javascript
复制
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");
}

……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-10 21:22:48

线索就在这里:

代码语言:javascript
复制
  [viewController viewWillAppear:animated];
} 

-(void)viewWillAppear 

你调用一个只接受一个参数的方法。但是您的方法没有这样的方法。用客观的C语言来说,这是一个完全不同的方法。

它应该看起来像这样:

代码语言:javascript
复制
-(void)viewWillAppear:(BOOL)animated {
  // blah
}
票数 6
EN

Stack Overflow用户

发布于 2012-02-10 20:38:16

你的window上有导航控制器吗?粘贴您的appdelegate.m

我的工作代码:

代码语言:javascript
复制
self.navController = [[[CustomNavigationController alloc] initWithRootViewController:[[[HomeViewController alloc] init] autorelease]] autorelease];
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9227836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档