【问题标题】:Calling method on back button返回按钮上的调用方法
【发布时间】:2012-07-21 17:38:06
【问题描述】:

我有一个导航控制器,它在第一个视图上有一个隐藏的导航栏,然后出现在所有子视图中。问题是,如果你回到第一个视图,我似乎无法再次隐藏它。

我在第一个视图的 init 中创建了一个后退按钮(所以我可以重命名它):

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] 
  initWithTitle:@"Logout" style:nil target:self 
  action:@selector(hideNavigationBar:)];

但该方法永远不会被调用。为什么?

【问题讨论】:

  • 您是否将按钮的标题设为“注销”
  • 对于您弹出的控制器,导航栏可能会被隐藏。所以你按下“注销”,栏被隐藏,控制器被弹出,你现在看到以前的控制器,应该没有栏,但栏存在,不是吗?
  • 按钮重命名正确,只是方法永远不会被调用。我从没看过日志。

标签: ios cocoa-touch


【解决方案1】:

在你的第一个控制器中,-(void)viewWillAppear,说:

  [self.navigationController setNavigationBarHidden:YES animated:NO];

【讨论】:

  • +1。我也是这样做的,比编辑后退按钮的方法干净多了。
  • 当然,@Devin Gund,您可以在不需要导航栏的任何控制器中执行此操作,不是吗?
  • 这就是我最终要做的,只是好奇为什么我无法从后退按钮获得消息。
猜你喜欢
  • 2011-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-18
  • 2014-09-15
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多