gpt4 book ai didi

objective-c - iOS 8 自定义后退按钮

转载 作者:太空狗 更新时间:2023-10-30 03:40:14 25 4
gpt4 key购买 nike

我在 iOS 7 中制作了一个应用程序,当我切换到 Xcode 6.1 和 iOS 8.1 时,我的自定义后退按钮不再出现,它们只显示以前的 View Controller 标题——这是默认的。

我正在使用:

self.navigationItem.backBarButtonItem.title = @"";
self.navigationItem.backBarButtonItem.tintColor = [UIColor whiteColor];

这不再有效,我确保设置委托(delegate)...(分别在 .h 和 .m 中)

.h

<UINavigationControllerDelegate, UINavigationBarDelegate>

.m

 self.navigationController.delegate = self;

我不知道你在 iOS8 中是否有不同的做法,我搜索了论坛,似乎只能弄清楚如何隐藏后退按钮。我知道您必须在父 VC 中设置后退按钮文本,以便隐藏我自己,我在两个 VC 中包含了相同的代码。

这段代码有效,所以我知道我有一定的能力与我的导航栏进行通信,所以我在那里没有问题...

self.navigationItem.title = @"New <type>";

谢谢

最佳答案

有时您需要使用 barButtonItems 创建新的,而不是修改旧的。我试过你的代码,但它对我也不起作用。这有效

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UIBarButtonItem *item = [[UIBarButtonItem alloc] init];
item.title = @"Title";
self.navigationItem.backBarButtonItem = item;
}

编辑

这段代码需要在之前的 View Controller 中,而不是有后退按钮的 View Controller 中。前任。如果 viewController A segue 到 viewController B 并且您希望 View Controller B 上的后退按钮显示“Backy”而不是 viewController A 的标题,那么您实际上将这段代码放在 viewController A 中,而不是 viewController B

编辑 2

要动态更改 View Controller 的后退按钮标题,请在推送 viewController 之前替换 backBtn,并为其指定适当的标题。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let barBtnItem = UIBarButtonItem()
navigationItem.backBarButtonItem = barBtnItem
if segue.identifier == "seg1" {
barBtnItem.title = "Hello 1"
} else if segue.identifier == "seg2" {
barBtnItem.title = "Hello 2"
}
}

关于objective-c - iOS 8 自定义后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27695253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com