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

时间:2013-10-03 19:50:05

标签: ios objective-c cocoa-touch uinavigationcontroller uikit

我很乐意说我正在享受这种向iOS 7的过渡,但感觉就像战斗之后的战斗才能让应用程序再次正常运行。

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

以下是该问题的屏幕截图:

enter image description here

有没有人遇到过这个问题,有什么想法可以解决它吗?欢迎提出所有建议。

1 个答案:

答案 0 :(得分:0)

您是否更改了字体大小 - 这可能会更改行高值导致位移?

最好选择自定义后退按钮,以便更好地控制展示位置。您可以将此代码段放在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];
}