Ios 更改UINavigationBar后退按钮标题
在我的应用程序中,我想使用“后退”文本作为每个viewcontroller的后退按钮标题。 我读了很多关于stackoverflow的帖子,但一无所获Ios 更改UINavigationBar后退按钮标题,ios,uinavigationcontroller,title,back-button,Ios,Uinavigationcontroller,Title,Back Button,在我的应用程序中,我想使用“后退”文本作为每个viewcontroller的后退按钮标题。 我读了很多关于stackoverflow的帖子,但一无所获 navigationItem.setLeftBarButtonItem(nil, animated: true) 我不想设置左巴布托主义 navigationItem.setLeftBarButtonItem(nil, animated: true) 有人能帮我完成这项简单的任务吗 navigationItem.setLeftBarButto
navigationItem.setLeftBarButtonItem(nil, animated: true)
我不想设置左巴布托主义
navigationItem.setLeftBarButtonItem(nil, animated: true)
有人能帮我完成这项简单的任务吗
navigationItem.setLeftBarButtonItem(nil, animated: true)
谢谢,试试这个,希望能奏效
UIBarButtonItem *btn =
[[UIBarButtonItem alloc] initWithTitle:@"New Title"
style:UIBarButtonItemStyleBordered
target:nil
action:nil];
[[self navigationItem] setBackBarButtonItem:btn];
navigationItem.setLeftBarButtonItem(nil, animated: true)
在父视图控制器而不是子视图控制器中执行此操作
navigationItem.setLeftBarButtonItem(nil, animated: true)
迅捷的
navigationItem.setLeftBarButtonItem(nil, animated: true)
目的性C
navigationItem.setLeftBarButtonItem(nil, animated: true)
swift 2.0:
navigationItem.setLeftBarButtonItem(nil, animated: true)
注意:仅当故事板具有一系列导航堆栈时,它才起作用
navigationItem.setLeftBarButtonItem(nil, animated: true)
其他选项/更改标题:
self.navigationController?.navigationBar.backItem?.title = ""
navigationItem.backBarButtonItem?.title = ""
navigationItem.leftBarButtonItem?.title = ""
navigationItem.setLeftBarButtonItem(nil, animated: true)
正在删除navigationItem:
navigationItem.setLeftBarButtonItem(nil, animated: true)
我需要使用self.navigationController.navigationBar.backItem.title=@;,区别在于我使用的是backItem而不是topItem。如果您使用的是故事板,您可以在父视图控制器中选择导航项,并在“Back button”字段中设置所需的按钮文本。记住在父视图控制器中设置,而不是在被推送的子视图控制器中设置
navigationItem.setLeftBarButtonItem(nil, animated: true)
要删除所有视图控制器的“后退”按钮标题,请添加新的swift文件并将此文件复制到其中
navigationItem.setLeftBarButtonItem(nil, animated: true)
导入UIKit
扩展UIViewController{
静态函数swizzle{
让orginalSelector=selectorviewDidLoad
让swizzledSelector=选择器swizzledViewIDLoad
让orginalMethod=class\u getInstanceMethodUIViewController.self,orginalSelector
让swizzledMethod=class\u getInstanceMethodUIViewController.self,选择符swizzledViewIDLoad
让didAddMethod=class\u addMethodUIViewController.self、orginalSelector、方法\u GetImplementationsSwizzledMethod!、方法\u GetTypeEncodingsSwizzledMethod!
if-didAddMethod{
类_replaceMethodUIViewController.self、swizzledSelector、方法_getImplementationorginalMethod!、方法_getTypeEncodingorginalMethod!
}否则{
方法\u ExchangeImplementationsOrfinalMethod!,swizzledMethod!
}
}
@objc func SwizzledVidLoad{
navigationItem.backBarButtonItem=UIBarButtonItem:,样式:。普通,目标:nil,操作:nil swizzledViewDidLoad } } 之后,在AppDelegate内的didFinishLaunchingWithOptions中,调用swizzle函数
navigationItem.setLeftBarButtonItem(nil, animated: true)
UIViewController.swizzle()
此函数使用objective c运行时将viewDidLoad方法与另一个方法交换,该方法删除后退按钮标题,然后在其中调用原始viewDidLoad。在DidFinishLaunchingWithOptions中的AppDelegate中添加以下代码:
navigationItem.setLeftBarButtonItem(nil, animated: true)
[[UIBarButtonItem appearance]
setBackButtonTitlePositionAdjustment:UIOffsetMake(-1000.0, 0.0)
forBarMetrics:UIBarMetricsDefault];
带后退箭头的后退按钮
目标-C
敏捷的
无返回箭头的普通按钮
目标-C
敏捷的
不带后退箭头的粗体按钮
目标-C
敏捷的
更改当前可见的后退按钮
navigationItem.setLeftBarButtonItem(nil, animated: true)
extension UIViewController {
func setCurrentBackButton(title: String) {
guard let vcCount = self.navigationController?.viewControllers.count else {
return
}
let priorVCPosition = vcCount - 2
guard priorVCPosition >= 0 else {
return
}
self.navigationController?.viewControllers[priorVCPosition].navigationItem.backBarButtonItem = UIBarButtonItem(title: title, style: .plain, target: self, action: nil)
}
在切换下一个viewcontroller的视图加载方法中添加此行。就像你将从Digi-Valview控制器返回Debug视图控制器,然后在MistVIEW控制器VIED DIAD Load方法@ SimasHARMA中添加它,这个代码可以回答这个问题,最好解释它做了什么并添加一些参考。它改变了BAR的中间部分而不是后退按钮的TwiteAsHeMeLoad…感谢在我的案例中navigationController?.navigationBar.backItem?.title=对于back button此方法的问题是,假设您有一个标题为home的主视图控制器,然后导航到第二个具有标题子级的视图控制器,当您应用此方法时,它将更改back button标题,但是,当您返回时,它将更改主屏幕标题“返回”按钮标题;除非你不再明确地设置它。这是一个更好的解决方案,它在Bar的中间不是Button Button的Twitter和Word好的iOS 93.2WaveStudioTime.BuffButton项目= UIButoButoNoTeMeTe::我已经尝试过viewDidLoad和ViewWillAppear,但必须在以前的view controller中添加上述代码。您现在可以在故事板中进行设置。您是否意识到接受的答案在现代ios上早已不起作用?rjobidon的工作非常感谢你!这对我很有帮助,但没用。你管它叫什么?我尝试了viewDidLoad和ViewWillDisplay,但当它调用self.navigationController?.navigationBar.backItem?.title=Test时,什么也没有发生。谢谢这解决了一个很长时间的问题。只有一个有效。