Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 更改UINavigationBar后退按钮标题_Ios_Uinavigationcontroller_Title_Back Button - Fatal编程技术网

Ios 更改UINavigationBar后退按钮标题

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

在我的应用程序中,我想使用“后退”文本作为每个viewcontroller的后退按钮标题。 我读了很多关于stackoverflow的帖子,但一无所获

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时,什么也没有发生。谢谢这解决了一个很长时间的问题。只有一个有效。