[英]View shifts down when presenting view controller with status bar on iOS 9
[英]ios navigation bar right button item shifts when pushing new view controller
我有一堆通過導航控制器進行協調並利用導航欄的三個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];
因此,每個視圖控制器在導航欄中都具有此注銷按鈕。 當我將這些控制器中的任何一個推入導航堆棧時,新的視圖控制器將按預期加載,所有內容都會顯示並正常運行,但是在顯示新的視圖控制器之后(動畫完成之后),注銷按鈕將向右移動3px對。
在VC的init方法,viewDidLoad和viewDidAppear中推VC之前,我曾嘗試添加按鈕,但仍然是相同的行為。 我似乎無法擺脫這一轉變。
奇怪的是,按下新VC(使用默認動畫)時,后退按鈕消失並重新出現(但使用默認動畫),但“注銷”按鈕似乎保留在原處,並且在動畫結束后僅向右移動。 另外,按鈕上的字體不是默認字體,而是系統字體之一(Helvetica light),可能與此有關。
為什么會這樣?
我有同樣的問題。 這是因為未設置rootviewcontroller。 將您的第一個導航欄所在的主頁或首頁設置為rootviewcontroller。 從那里[self.navcontroller] pushviewcontroller ...]。
嘗試致電
self.navigationItem.rightBarButtonItem = yourUIBarButtonItem;
另外,您的登出按鈕是什么,是否是正確的課程? 也許更多的代碼?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.