Элемент правой кнопки панели навигации iOS смещается при нажатии нового контроллера представления

У меня есть стек из трех VC, которые координируются через навигационный контроллер и используют панель навигации. На этой панели навигации в каждом VC я добавил одну и ту же кнопку (кнопку «Выход» )в качестве элемента кнопки правой панели :

UIBarButtonItem *logoutButton = 
[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"LogoutButtonTitle", @"")
                                     style:UIBarButtonItemStyleBordered 
                                     target:self 
                                     action:@selector(logout)];

[categoriesViewController.navigationItem setRightBarButtonItem:logoutButton];
[[self navigationController] pushViewController:categoriesViewController animated:YES];

. Таким образом, каждый контроллер представления имеет эту кнопку выхода из системы на панели навигации. Когда я помещаю любой из этих контроллеров в стек навигации, новые контроллеры представления загружаются, как и ожидалось, все отображается и работает правильно, но сразу после отображения нового контроллера представления (после завершения анимации )кнопка выхода смещается примерно на 3 пикселя вправо.

Я пытался добавить кнопку перед нажатием VC, в методах инициализации VC, в viewDidLoad и viewDidAppear, но все равно такое же поведение. Кажется, я не могу избавиться от этого смещения.

Странно то, что кнопка «Назад» исчезает и снова появляется при нажатии нового VC (с анимацией по умолчанию ), но кнопка «Выход», кажется, остается на месте и просто смещается вправо после окончания анимации. Также шрифт на кнопках не является шрифтом по умолчанию, а может быть связан с этим один из системных шрифтов (Helvetica light ).

Любые идеи о том, почему это происходит?

8
задан Roger TheAlien 2 August 2012 в 08:14
поделиться