При представлении нового представления с помощью кнопки UIBarButtonSystemItemCompose в навигационной панели позиция немного выключена и настраивается после того, как представление появилось.
Я думаю, что это ошибка в iOS (используется версия 8.3). Это происходит только при использовании UIBarButtonSystemItemCompose. Это не происходит с другими типами кнопок (системный, текстовый или пользовательский).
Единственным кодом, необходимым для репликации этой ошибки, является использование этого кода ViewController с представлением, которое будет отображаться:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIBarButtonItem* composeBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera
target:nil
action:nil];
[self.navigationItem setRightBarButtonItem:composeBarButtonItem animated:YES];
}
@end
Я создал репозиторий на GitHub с минимальным минимальным кодом, чтобы воспроизвести проблему: https://github.com/jvdvleuten/iOSComposeBarButtonItemBug
Выражения, связанные с этим: UIBarButtonItems сдвигает позицию, когда UINavigationController представлен в формате, за исключением того, что моя ошибка появляется только при использовании UIBarButtonSystemItemCompose.
Любые идеи?