2014-04-01 115 views
1

我有以下代碼來創建UINavigationBar並在右側用後退按鈕設置導航項目。iOS 7.1更新默認隱藏導航欄左鍵

UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 60)]; 
navBar.delegate = self; 
UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(backButtonTapped)]; 

UINavigationItem *backItem = [[UINavigationItem alloc] init]; 
[backItem setTitle:@"What's New"]; 
[backItem setLeftBarButtonItem:back]; 
backItem.leftBarButtonItem.enabled = YES; 
[navBar pushNavigationItem:backItem animated:NO]; 

[self.view addSubview:navBar]; 

這工作完美,直到我最近更新我的xCode 5到iOS 7.1更新。

但現在當UIView呈現導航按鈕不可見。但是,當我觸摸按鈕的位置(它在更新之前的位置)時,它會顯示按鈕並單擊即使正在觸發。

我的問題是如何設置按鈕可見的時刻視圖呈現給用戶?

謝謝。

+0

我剛剛創建一個空白的項目,在這裏我只是簡單地添加你的代碼在視圖 - 控制的viewDidLoad。在這裏,它正在工作,也許導航欄在某個方面被另一部分修改了嗎?你可以通過記錄它的子視圖來驗證導航欄是否正確設置,例如在你的backButtonTapped方法中: - (void)backButtonTapped對於(UIView * v in self.view.subviews) { } if([v isKindOfClass:[UINavigationBar class]])NSLog(@「%@」,v.subview或多個); } } – Lepidopteron

回答

0

謝謝大家,

終於發生了什麼如下。

上述行爲不是我所假設的。加載新視圖時,默認情況下該按鈕將消失,並且僅當我在此位置按鈕上出現&時,此按鈕纔會出現。進一步,當我保持視圖仍然存在,加載後約15秒,按鈕出現。

所以我懷疑這是與「viewDidLoad」方法。當我移動上面的代碼爲「viewDidAppear」的方法也開始重新工作(代碼與此相關的UINavigationBar的是viewDidLoad方法。

0

嘗試用initWithCustomView初始化您的UIBarButtonItem。此外,請嘗試將UIButtonbuttonType設置爲UIButtonTypeSystem

+0

嗨,謝謝。我厭倦了這一點,但仍然不適合我。 –

+0

請用最新的代碼更新你的問題。 – NeverHopeless

+0

嗨,我把我的工作作爲答案。現在它適用於我。 –