iOS 7 中的 UINavigationController 后退按钮雪佛龙

Posted

技术标签:

【中文标题】iOS 7 中的 UINavigationController 后退按钮雪佛龙【英文标题】:UINavigationController Back Button Chevron in iOS 7 【发布时间】:2013-10-03 19:50:04 【问题描述】:

我想说的是,我很享受向 ios 7 的过渡,但感觉就像是一场又一场的战斗,才能让应用程序再次正常运行。

我当前的问题是 uinavigationcontroller。它嵌入在选项卡控制器中。当用户开始向下钻取类别时,就会出现问题。后退按钮 V 形移动到导航栏的左上部分,而实际的后退按钮保持固定在其正常位置。代码没有做任何操作。它只是推送和弹出视图控制器。

这是问题的截图:

有没有人遇到过这个问题,并且知道如何解决它?欢迎所有建议。

【问题讨论】:

【参考方案1】:

您是否更改了字体大小 - 这可能更改了导致位移的 line-height 值?

最好选择自定义后退按钮,这样您就可以更好地控制展示位置。你可以把这个sn-p放在viewDidLoad中

if ( [self.navigationController.viewControllers count] > 1 )

    UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [backBtn setAdjustsImageWhenHighlighted:NO];
    [backBtn setShowsTouchWhenHighlighted:YES];
    [backBtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
    UIImage *backBtnImage = [UIImage imageNamed:@"back.png"]; // <-- Use your own image
    [backBtn setImage:backBtnImage forState:UIControlStateNormal];
    [backBtn addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
    backBtn.frame = CGRectMake(0, 0, 40, 40);
    UIBarButtonItem *backBarBtnItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn];
    self.navigationItem.leftBarButtonItem = backBarBtnItem;

同时添加自定义返回按钮触摸事件的方法:

- (void)goBack

    [self.navigationController popViewControllerAnimated:YES];

【讨论】:

以上是关于iOS 7 中的 UINavigationController 后退按钮雪佛龙的主要内容,如果未能解决你的问题,请参考以下文章

iOS应用主流UI架构实现

如何允许用户使用 Swift 选择图像?

应用程序唤醒后 UINavigationController 堆栈上的 UIViewController 重复

iOS 7中的iOS 7 AVPlayer AVPlayerItem持续时间不正确

PhoneGap:iOS 7 中的 UIPickerView 不会像在 iOS 6 中那样自动调整字体大小。关于如何在 iOS 7 中实现的任何解决方案?

ios 7 中的区域监控