我有一个三个VC通过导航控制器进行协调,并利用导航栏的堆栈。在此导航栏,在每个VC,我添加了相同的按钮(“退出”按钮),为右栏按钮项:ios导航栏右键按下项目时推动新视图控制器
UIBarButtonItem *logoutButton =
[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"LogoutButtonTitle", @"")
style:UIBarButtonItemStyleBordered
target:self
action:@selector(logout)];
[categoriesViewController.navigationItem setRightBarButtonItem:logoutButton];
[[self navigationController] pushViewController:categoriesViewController animated:YES];
所以每个视图控制器具有在导航栏此注销按钮。当我将这些控制器中的任何一个推到导航堆栈上时,新的视图控制器按预期方式加载,所有内容都会显示并正常运行,但在显示新的视图控制器后(动画完成后),注销按钮将移动大约3px到对。
我已经尝试添加按钮之前推VC,在VC的init方法,在viewDidLoad和viewDidAppear但仍然是相同的行为。我似乎无法摆脱这种转变。
什么奇怪的是,后退按钮消失,并推动新的VC时(使用默认的动画),但“退出”按钮,似乎留在原地,只是转移到右侧的动画完成后再次出现。此外,按钮上的字体不是默认字体,而是系统字体之一(Helvetica灯),可能与此有关。
为什么会发生这种情况的任何想法?
这是因为我没有使用默认字体。不知何故,当使用与屏幕不同的字体呈现按钮时,其框架需要重新计算 - 或者这是我最好的猜测。 – 2012-08-02 08:30:33
我有这个相同的问题 - 你最终修复它吗? – 2012-08-24 19:11:59