BarButtonItem 上的箭头

Posted

技术标签:

【中文标题】BarButtonItem 上的箭头【英文标题】:Arrow on BarButtonItem 【发布时间】:2013-10-01 15:06:15 【问题描述】:

ios 上,如果您没有在导航堆栈中手动设置条形按钮项目,则会为您添加一个带有前一个控制器的标题和一个后退箭头的项目。我只想保留箭头。例如如果我以前的控制器的标题是 Hello,我当前的控制器会将 leftbarbuttonitem 设置为“

           UIBarButtonItem *goBackAndSaveButton = [[UIBarButtonItem alloc]initWithTitle:@"[insert arrow here]CustomTitle" style:UIBarButtonItemStylePlain target:self action:@selector(goBackAndSave)];

             self.navigationItem.leftBarButtonItem = asdf;

有什么方法可以控制标题,所以我可以设置自定义标题但仍然使用后退箭头“

【问题讨论】:

仅供参考 - 自 iOS 2.0 以来就存在这种行为。它与 iOS 7 无关。 @rmaddy:我不知道,我最近才成为一名开发人员。将更新描述。谢谢你告诉我! 您可以使用willMoveToParentViewController: 作为触发器吗? @Wain:我最终使用了 viewWillDisappear。如果您将评论作为答案,我会接受! 【参考方案1】:

您可以选择使用视图控制器生命周期方法之一(例如willMoveToParentViewController:)作为保存的触发器,而不是使用自定义栏按钮项。如果您使用willMoveToParentViewController:(当父级为零时),您可以在视图被删除时保存一次。如果您使用viewWillDisappear:,您的存档会在推送其他视图时更频繁地运行。

【讨论】:

【参考方案2】:

在您要从中推送新视图控制器的控制器的 -viewDidLoad 方法中,使用以下代码:

self.navigationItem.backBarButtonItem = 
[[UIBarButtonItem alloc] initWithTitle:@"CustomTitle"
                                  style:UIBarButtonItemStyleBordered
                                 target:nil
                                 action:nil];

然后,当您按下新的视图控制器时,它的后退按钮将具有您的自定义标题。

【讨论】:

让我澄清一下。您所要做的就是在将新视图控制器推送到导航控制器堆栈之前设置后退栏按钮的标题。

以上是关于BarButtonItem 上的箭头的主要内容,如果未能解决你的问题,请参考以下文章

Dev BarManager使用方法

将 BarButtonItem 旋转 45 度(动画)

BarButtonItem 没有出现

将 BarButtonItem 添加到 NavigationBar

一个 BarButtonItem 的多个操作

带有 Popovercontroller 的 BarButtonItem?