【问题标题】: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]; },请试试这个代码。

标签: iphone objective-c ios xcode


【解决方案1】:

我想,你忘了调用 viewWillAppear: 超类的方法。

-(void) viewWillAppear : (BOOL)animated
{

    [super viewWillAppear:animated];

    [root_obj.navigationController setNavigationBarHidden:YES animated:YES];
}

【讨论】:

    【解决方案2】:

    你为什么不把NavigationBar隐藏在View1'sViewDidAppear方法中

    编辑

    我不确定您的代码有什么问题,但您可以在 ViewWillAppearViewDidAppear 方法中执行此类操作以获取更多信息 UIViewController Class Reference 并检查 ViewWillAppearViewDidAppear

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-23
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      相关资源
      最近更新 更多