После долгих попыток мне наконец-то удалось решить проблему самостоятельно.
Таким образом, в основном, когда я создаю leftBarButton, кнопка не начинается с левого поля, но имеет некоторое пространство до левого поля. Когда я теперь вставлю свое изображение кнопки с отрицательным вкладом, изображение будет в основном вне моей рамки кнопки. Затем эта часть странным образом накладывается на переход.
Чтобы это исправить, я просто добавляю еще один UIBarButtonItem дополнительно к моим leftBarButtonItem. Это, кажется, решает проблему для меня, хотя я действительно не знаю почему именно.
Кроме того, я думаю, что это странно, что leftBarButton в навигационной панели не начинается точно с поля, но имеет пространство до поля, и мне нужно вставить свое изображение, чтобы получить точно такую же позицию для изображения, как кнопка возврата по умолчанию имеет.
Мой новый код для создания пользовательской кнопки возврата теперь выглядит так:
- (void)setupCustomBackButton:(NSString *)title
action:(SEL)action
buttonFrame:(CGRect)buttonFrame {
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
backButton.frame = buttonFrame;
[backButton setImage:[UIImage imageNamed:@"customBackArrow"] forState:UIControlStateNormal];
backButton.imageEdgeInsets = UIEdgeInsetsMake(0.0f, -8.0f, 0.0f, 0.0f);
[backButton setTitle:title forState:UIControlStateNormal];
[backButton.titleLabel setFont:[UIFont systemFontOfSize:17.0]];
backButton.titleEdgeInsets = UIEdgeInsetsMake(0.0f, -3.0f, 0.0f, 0.0f);
[backButton setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
[backButton addTarget:self action:action forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:backButton];
UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
target:nil action:nil];
self.navigationItem.leftBarButtonItem = nil;
[self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects:negativeSpacer,barButton, nil] animated:NO];
}
Спасибо всем, и я надеюсь, что мой ответ поможет кому-то еще!