更改所有 UIViewController 的 BackBarButtonItem?
Change BackBarButtonItem for All UIViewControllers?
我想更改 BackBarButtonItem
我的 iOS 应用中所有视图的 BackBarButtonItem
以便它们仅显示后退箭头而没有文本。
完成此操作的唯一方法是遍历每个 UIViewController 并设置 self.navigationItem.backBarButtonItem.title
吗?似乎我应该能够创建一个超类来定义 backBarButtonItem.title
的默认值,但我不确定从哪里开始。
感谢您的帮助。
您不需要在每个视图控制器上更改它 class。您可以将其子类化并更改一次,也可以在您的应用委托中进行。
如果您想子class 导航栏,您可以简单地设置带有文本@"":
的后退按钮
UIBarButtonItem *newBackButton =
[[UIBarButtonItem alloc] initWithTitle:@""
style:UIBarButtonItemStylePlain
target:nil
action:nil];
[[self navigationItem] setBackBarButtonItem:newBackButton];
如果你想在 app delegate 中完成,你可以通过两种方式完成:
一种方法是将按钮文本颜色设置为清晰颜色:
[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor clearColor]} forState:UIControlStateNormal];
另一种方法是将后退按钮放置在远离屏幕的位置,这样用户就看不到它
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -200) forBarMetrics:UIBarMetricsDefault];
我们可以实现导航控制器的委托功能,并为实现该功能的视图控制器设置委托:
1) navigationController.delegate = yourViewController
2)委托函数:
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
viewController.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}
这将删除所有后续视图控制器的后退按钮标题文本
我想更改 BackBarButtonItem
我的 iOS 应用中所有视图的 BackBarButtonItem
以便它们仅显示后退箭头而没有文本。
完成此操作的唯一方法是遍历每个 UIViewController 并设置 self.navigationItem.backBarButtonItem.title
吗?似乎我应该能够创建一个超类来定义 backBarButtonItem.title
的默认值,但我不确定从哪里开始。
感谢您的帮助。
您不需要在每个视图控制器上更改它 class。您可以将其子类化并更改一次,也可以在您的应用委托中进行。
如果您想子class 导航栏,您可以简单地设置带有文本@"":
的后退按钮 UIBarButtonItem *newBackButton =
[[UIBarButtonItem alloc] initWithTitle:@""
style:UIBarButtonItemStylePlain
target:nil
action:nil];
[[self navigationItem] setBackBarButtonItem:newBackButton];
如果你想在 app delegate 中完成,你可以通过两种方式完成:
一种方法是将按钮文本颜色设置为清晰颜色:
[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor clearColor]} forState:UIControlStateNormal];
另一种方法是将后退按钮放置在远离屏幕的位置,这样用户就看不到它
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -200) forBarMetrics:UIBarMetricsDefault];
我们可以实现导航控制器的委托功能,并为实现该功能的视图控制器设置委托:
1) navigationController.delegate = yourViewController
2)委托函数:
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
viewController.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}
这将删除所有后续视图控制器的后退按钮标题文本