在开始之前,我只想提供一些背景信息。我以前在我的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];
如果有人知道如何在推动过渡期间(向前和向后)完全移除原始后退按钮,我很乐意听到它。
答案 0 :(得分:0)
我正在测试您的代码。这一切似乎都运作良好。但我肯定会先说这个:
self.navigationItem.hidesBackButton = YES;
调用此函数后,再创建新的leftBarButtonItem。我使用的完整代码如下:
self.navigationItem.hidesBackButton = YES;
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Hi"
style:UIBarButtonItemStylePlain
target:self
action:@selector(triggerBackNavigation:)];
我知道你正在使用图片,但我只是使用带文字的按钮来查看它是否正常工作。