我有一個三個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