1

在开始之前,我只想提供一些背景信息。我之前在我的一个 iOS 应用程序中实现了一个自定义后退按钮。那时,我可以在几分钟内完成它,所以这是一次非常好的体验。

然而,这一次,我遇到了奇怪的问题。首先,自定义后退按钮根本没有显示。然后,我让它与原来的后退按钮重叠。但是,我永远不能移除原来的后退按钮。

在我在这里找到答案之前,我很茫然:http: //smartercoder.com/2010/10/18/what-to-do-it-self-navigationitem-hidesbackbutton-true-doesnt-work。解决方案是设置一个虚拟左按钮并将其删除,然后告诉导航项隐藏后退按钮并添加自定义按钮。

然而,虽然自定义按钮现在取代了原来的按钮,但结果不如我的第一个应用程序中的那么好。在推动过渡期间,我仍然短暂地看到原始的后退按钮。显然,如果它根本不出现会更好。

这是我在viewDidLoad中运行的代码:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc] init]];
self.navigationItem.leftBarButtonItem = nil;
self.navigationItem.hidesBackButton = YES;
self.navigationItem.leftBarButtonItem = [UIBarButtonItem barButtonItemWithImage:[UIImage imageNamed:@"toolbar-button-back"] andAction:@selector(triggerBackNavigation:) withTarget:self];

如果有人知道如何在推动转换(向前和向后)期间完全移除原来的后退按钮,我很想听听。

4

1 回答 1

0

我现在正在测试你的代码。这一切似乎运作良好。但我肯定会首先调用它:

self.navigationItem.hidesBackButton = YES;

调用此方法后,创建新的 leftBarButtonItem。我使用的完整代码如下:

self.navigationItem.hidesBackButton = YES;
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Hi"
                                                                         style:UIBarButtonItemStylePlain
                                                                        target:self
                                                                        action:@selector(triggerBackNavigation:)];

我知道您使用的是图像,但我只是使用了一个带有文本的按钮来查看它是否正常工作。

于 2013-08-04T19:50:15.323 回答