【问题标题】:How to hide back button title on iOS7 with NavigationController如何使用 NavigationController 在 iOS7 上隐藏后退按钮标题
【发布时间】:2014-01-22 09:45:04
【问题描述】:

我有一个基于 NavigationController 的 iOS7 应用程序,在此我想隐藏与 V 形一起显示的后退按钮文本。有办法解决这个问题吗?我尝试将空字符串设置为后退按钮标题,在前一个视图上尝试空标题,似乎如果它找到空标题,它会用“返回”文本替换它。

请帮忙

谢谢

【问题讨论】:

  • 您只是想看到没有任何文字的人字形/后退箭头,还是想完全隐藏后退按钮?前者是个坏主意(恕我直言,除非你需要额外的空间),后者已经在 StackOverflow 上得到了多次回答。
  • @DarkDust 是的,由于某种原因,我需要更多空间。
  • 所以您尝试过使用@""nil 不起作用,这会给您“返回”)? @" "(一个空格)呢?
  • 另外,这可能很有趣:stackoverflow.com/questions/18912638/…

标签: ios7 navigationcontroller


【解决方案1】:

最后解决如下,这个很完美。

self.navigationController.navigationBar.topItem.title = @"";

从此链接Removing the title text of an iOS UIBarButtonItem

但是,如果您从上一个视图导航到下一个视图,当我将上述解决方案放在上一个视图的 viewWillDisappear 的 viewDidDisappear 中时,您会看到上一个视图导航栏的标题消失了,这不是情节提要中的优雅解决方案基于 UINavigationController 场景,在另一种情况下,我最终决定使用条形按钮并根据本机后退按钮 V 形设置其图像,这样可以提供更好的结果。

【讨论】:

  • 我在下面发布了一个不同的答案来解决你提到的关于标题消失的缺点......
【解决方案2】:

@vishal 提出的答案有一个严重的缺点:如果您从 A 导航回 B,它会从控制器 A 中删除标题。

这是一个更安全的解决方案,可在推送控制器 B 之前应用于控制器 A:

self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];

对于快速:

if let topItem = controller.navigationController?.navigationBar.topItem {
    topItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
}

【讨论】:

    【解决方案3】:

    如果您想在所有应用中隐藏返回按钮标题,请将其放入您的 App Delegate:

    @implementation UINavigationItem (myCustomization)
    
    -(UIBarButtonItem *)backBarButtonItem
    {
        return [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:nil action:nil];
    }
    
    @end
    

    在 iOS 7 上测试

    【讨论】:

    • 这太棒了。确保应用程序中的所有后退按钮都只有箭头,没有文字。
    【解决方案4】:

    要隐藏导航控制器的后退按钮,试试这个:

    [self.navigationItem setHidesBackButton:YES animated:YES];
    [self.navigationItem setBackBarButtonItem:nil];
    [self.navigationItem setLeftBarButtonItem:nil animated:NO];
    

    希望对你有帮助。

    编码愉快...:)

    【讨论】:

    • 这不是我要求的,我问的是如何隐藏标题而不是整个按钮。
    • @vishal 因为你必须隐藏整个后退按钮并添加带有 uiimage 的自定义按钮然后我输入代码?
    • 不,这不是我可以遵循的方法,因为我有很多观点
    【解决方案5】:

    最简单的解决办法是用

    去掉后退按钮的标题
    navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)
    

    在呈现视图控制器上的viewWillAppear 中。请注意,呈现未呈现。

    来自Removing the title text of an iOS UIBarButtonItem

    【讨论】:

      猜你喜欢
      • 2015-12-12
      • 2022-09-24
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多