斯威夫特奇怪的后退按钮文字加

问题描述:

enter image description here斯威夫特奇怪的后退按钮文字加

请看看我的截图,蓝色的“后退”文本始终显示iPhone上的加号(6S加,7加两个模拟器和真实设备)。它不会在小屏幕iPhone上显示。我尝试了很多方法来隐藏/改变它从现在/之前的控制器,但没有运气。

那么,为什么它在较小的iPhone上工作,但不是加号?

谁能帮我:(谢谢

这里是代码:。

@IBAction func filter(_ sender: Any) { 
    let view:FilterViewController = self.storyboard?.instantiateViewController(withIdentifier: "FilterViewController") as! FilterViewController 
    view.superVC = self 
    view.currentFilter = currentFilter 
    self.setLeftCloseNavigation() 
    self.navigationController?.pushViewController(view, animated: true) 
} 

func setLeftCloseNavigation(){ 
    self.navigationController?.navigationBar.backgroundColor = UIColor.clear 
    self.navigationController?.navigationBar.isTranslucent = true 
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) 
    self.navigationController?.navigationBar.layer.mask = nil 

    self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "icon_close")?.withRenderingMode(.alwaysOriginal) 
    self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "icon_close")?.withRenderingMode(.alwaysOriginal) 
    navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil) 
} 

这里是viewDidLoad中推入控制器:

override func viewDidLoad() { 
    super.viewDidLoad() 
    statusBar = UIColor.black 
    setResetNavigation() } 

func setResetNavigation(){ 
    navigationItem.hidesBackButton = false 

    let skipButton = UIButton(frame: CGRect(x: 0, y: 0, width: 70, height: 30)) 
    skipButton.setTitle("Reset all".localized(), for: .normal) 
    skipButton.setTitleColor(UIColor.black, for: .normal) 
    skipButton.titleLabel?.font = UIFont(name: "HJGothamMedium", size: 16) 
    skipButton.addTarget(self, action: #selector(resetAllClicked), for: .touchUpInside) 
    let skip = UIBarButtonItem(customView: skipButton) 
    navigationItem.rightBarButtonItem = skip 
} 

这是视图层次

enter image description here

+0

直接做到这一点,你可以展示一些代码 –

+0

检查你的观点在故事板和删除按钮。 – KKRocks

+0

是这个presentViewController? – KKRocks

添加此功能:

override func viewDidAppear(_ animated: Bool) { 
      setResetNavigation() 
      self.navigationController?.navigationBar.backItem?.title = "" 
    } 

navigation bar in iPhone 7S

+0

谢谢,但我不想删除它,只是想删除文本 –

+0

是的,我也试过,它适用于小iphone,但不是加号之一:( –

+0

只是一分钟我在7s试试这个 –

试试这个

self.navigationItem.hidesBackButton = true 

或检查您的故事板将保持

+0

谢谢,但我不想隐藏,只是想删除文本 –

使用下面的行删除文本

navigationController?.navigationBar.topItem?.title = "" 
+0

谢谢,我试过了,但它没有工作:(我把它放在前一个控制器(推送前)和呈现控制器(viewdidload,viewdidappear) –

+0

什么是十字架,如果它的一个按钮看你是否错误地把名字放回到那个按钮以及一个十字图像 –

+0

我也检查过了,请看更新代码 –

可以检查你的UI层次结构,如果发现相关的看法,然后删除该视图:

您还可以通过在调试导航来自进程视图选项菜单中选择查看UI层次调用视图调试程序,或通过选择调试>查看调试>捕获视图层次

+0

请看看视图层次结构的截图我只是添加 –

从下面的代码中,您可以将backButton文本颜色设置为您想要的任何颜色。您可以简单地将backButton设置为clear textColor。所以,当它出现时它将不可见。

UIBarButtonItem.appearance(whenContainedInInstancesOf: [UINavigationBar.classForCoder() as! UIAppearanceContainer.Type]).setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.clear], for: .normal) 

更新:如果你想要去一个不同的approach.Check这篇文章How to customize the navigation back symbol and navigation back text?和接受的答案。

要隐藏你需要设置导航项目标题空格字符是推动呈现视图控制器视图控制器背面的文本:

self.navigationItem.title = " " 

请注意,你必须设置一个视图控制器和不是最上面的一个。你也必须设置空格字符而不是空字符串!

您也可以在故事板

enter image description here