Tec*_*ain 3 uinavigationbar uinavigationcontroller uinavigationitem swift
我想在swift 3中将backbutton的标题更改为任何名称.我尝试了很多方法,但它们都没有为我工作.
self.navigationItem.backBarButtonItem?.title="Title"
self.navigationController?.navigationItem.backBarButtonItem?.title="Title"
Run Code Online (Sandbox Code Playgroud)
仅供参考,我在appdelegate中编写了以下代码.
let backImage : UIImage = UIImage(named:"backArrow")!
UINavigationBar.appearance().barTintColor = UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0)
UINavigationBar.appearance().tintColor = UIColor.white
UINavigationBar.appearance().backIndicatorImage = backImage
UINavigationBar.appearance().backIndicatorTransitionMaskImage = backImage
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white]
UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(0, 0), for: .default)
IQKeyboardManager.sharedManager().enable = true
self.window?.backgroundColor = UIColor.white
Run Code Online (Sandbox Code Playgroud)
导航项后退按钮名称将与之前视图控制器的标题相同,后者将其推送到导航堆栈:)
因此,如果VC A按下VC B,VC B中的后退按钮将为A.
所以你要做的就是,在使用代码推送新的viewController之前更改前一个viewController的标题:)
self.navigationItem.title = "ABCD"
Run Code Online (Sandbox Code Playgroud)
在VC A的ViewWillAppear中,您可以将标题恢复为之前的标题:)
self.navigationItem.title = "Back to xyz"
Run Code Online (Sandbox Code Playgroud)
所有这一切,如果你不想要所有这些马戏团:)你可以简单地隐藏默认后退按钮使用,
self.navigationItem.hidesBackButton = true
Run Code Online (Sandbox Code Playgroud)
在你的VC B中,创建一个UIBarButton项,设置你想要设置的标题,然后将其设置为leftBarButtonItem :)使用,
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: NSLocalizedString("ABCD", comment: "ABCD"), style: .plain, target: self, action:#selector(self.abcdTapped:)
Run Code Online (Sandbox Code Playgroud)
当然现在不会显示"<"图标:)现在,如果你也想要它,你可以将它作为一个图像添加到后面栏按钮项目:)但它的繁琐:)
希望能帮助到你 :)
你将不得不设置backBarButtonItem的属性navigationItem的viewController,你推说viewController从。
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.plain, target: nil, action: nil)
Run Code Online (Sandbox Code Playgroud)
但是,您必须为每个viewController.
| 归档时间: |
|
| 查看次数: |
22865 次 |
| 最近记录: |