2016-01-19 71 views
1

用戶到達與前一個通過推動這個賽格瑞的viewController,所以我希望這是在UINavigationBar後退按鈕,讓他們返回。如何向我的UINavigationBar添加後退按鈕?

通常這後退按鈕默認會出現,如果我右擊的的viewController在故事板和選擇Embed in>Navigation Controller,但這樣做是造成死機,我喜歡編程做的事情,所以我決定做它viewDidLoad像所以:

// Nav bar 
    UINavigationBar *navbar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)]; 

    // Back Button 
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style: UIBarButtonItemStyleBordered target:self action:@selector(Back)]; 
    self.navigationItem.leftBarButtonItem = backButton; 

    [self.view addSubview:navbar]; 

這個成功地添加了導航欄的頂部,但它並沒有像預期的那樣添加後退按鈕。我試着給hereherehere的解決方案,但都沒有解決的問題。

+0

這就是爲什麼你不應該在代碼中做到這一點,它污染你的控制器與視圖的創建和剛打開門,以怪異的行爲笨重的UI。儘可能多地使用故事板儘可能多地展示UI,這就是他們所做的,儘可能保持程序化UI的內容。 – trapper

回答

0

您構建了一個UINavigationBarUIBarButtonItem但從未連接的兩個。

UINavigationController管理一個UINavigationBar爲你設置它的topItem是在導航堆棧中最上面的視圖控制器的navigationItem。如果你需要建立自己的導航欄,那麼你需要自己管理它的項目堆棧。看看UINavigationBar- pushNavigationItem:animated:方法。

但是,鑑於您似乎想要的外觀和UINavigationController的功能,我不清楚爲什麼你自己添加一個UINavigationBar視圖,而不是使用該容器視圖控制器。

+0

這是一個很好的觀點。我將如何顯示容器?它不會像現在這樣出現,除非我將它嵌入到導航控制器中,並導致崩潰。 – TheDudeGuy

相關問題