单击导航返回按钮时将调用啥方法-IOS?
Posted
技术标签:
【中文标题】单击导航返回按钮时将调用啥方法-IOS?【英文标题】:What method will be called when Navigation back button is clicked -IOS?单击导航返回按钮时将调用什么方法-IOS? 【发布时间】:2012-08-03 06:11:19 【问题描述】:这个问题看起来重复了,但我没有找到适合我的问题的解决方案。就我而言,单击后退按钮后,我想隐藏导航栏。例如View1 推送了 view2,view2 将有导航栏,一旦我点击返回它会让我回到 view 1 它不应该包含导航栏我需要隐藏它。我尝试在视图 2 中使用 viewWillDisappear 方法进行隐藏,它可以工作,但是如果我有更多视图并且如果我单击后退按钮,我会从视图 1 推送每个视图,导航栏应该隐藏在视图 1 中。无论如何,在视图 1 本身中是否知道其他视图已弹出。我在 view1 中尝试了 viewwillappear 方法,它没有被调用。我可以在这里做什么?
这个方法在我最初加载 view1 时被调用,而不是在弹出 view2 之后调用。
- (void) viewWillAppear : (BOOL)animated
[root_obj.navigationController setNavigationBarHidden:YES animated:YES];
这就是我推动视图 2 的方式..
[root_obj.navigationController pushViewController:view2 animated:NO];
提前致谢
【问题讨论】:
“我在 view1 中尝试了 viewwillappear 方法,它没有被调用。”你确定吗?我不明白为什么不应该调用它。 @inoob 我试过了。它没有被调用。 我有几个类似的应用程序,其中我的第一个屏幕没有导航栏,其余屏幕都有。在那我总是添加导航栏隐藏在viewWillAppear
并且似乎工作得很好。如果可能的话,你能显示viewWillAppear
代码吗?
或者推的方式我做错了???
@FerozMohideen,尝试在viewWillAppear
中执行NSLog
,据我所知viewWillAppear
总是在视图出现时被调用。-(void) viewWillAppear : (BOOL)animated [root_obj.navigationController setNavigationBarHidden:YES animated:YES]; NSLog(@"VIEW WILL APPEAR!!"); [super viewWillAppear:animated];
,请试试这个代码。
【参考方案1】:
我想,你忘了调用 viewWillAppear: 超类的方法。
-(void) viewWillAppear : (BOOL)animated
[super viewWillAppear:animated];
[root_obj.navigationController setNavigationBarHidden:YES animated:YES];
【讨论】:
【参考方案2】:你为什么不把NavigationBar
隐藏在View1's
ViewDidAppear
方法中
编辑
我不确定您的代码有什么问题,但您可以在 ViewWillAppear
或 ViewDidAppear
方法中执行此类操作以获取更多信息 UIViewController Class Reference 并检查 ViewWillAppear
或 ViewDidAppear
【讨论】:
以上是关于单击导航返回按钮时将调用啥方法-IOS?的主要内容,如果未能解决你的问题,请参考以下文章