2015-09-20 49 views
0

設置:禁用的導航控制器回到以前的視圖控制器

當您從SignUpViewController你去PostsViewController註冊。它們通過一個show segue連接,因此在導航欄內,< SignUp按鈕被自動創建。

問題:

我想隱藏此按鈕,因爲你永遠也不會再回到SignUpViewController,除非你已經登出。我認爲從導航堆棧中移除視圖控制器可以完成這項工作。我做了以下內容:

NSArray *navVCs = [self.navigationController viewControllers]; 
for (UIViewController *vc in navVCs) { 
    if ([vc isKindOfClass:[SignUpViewController class]]) { 
     [vc removeFromParentViewController]; 
    } 
} 

我檢查了SignUpViewController正確的導航堆棧中刪除,但它仍然不會刪除後退按鈕。

我也試着設置

self.navigationItem.hidesBackButton = YES; 
self.navigationController.navigationBar.userInteractionEnabled = NO; 
self.navigationItem.backBarButtonItem = nil; 
self.navigationItem.leftBarButtonItem = nil; 

和他們沒有從導航欄中刪除裏面PostsViewController< SignUp按鈕。

解決方案:

我看着無處不在計算器上,我很驚訝,我找不到答案。預先感謝您的幫助!

+0

你能否以模態方式呈現註冊視圖,然後轉換到posts視圖,這將是導航控制器中嵌入的第一個視圖控制器? – Gordonium

+0

現在,'SignUpViewController'是第一個視圖控制器。 –

+1

是的。但是你可以將它從帖子視圖控制器中分離出來,所以沒有一個segue,並且它沒有嵌入到導航控制器中。一旦他們登錄,手動轉換到帖子控制器(而不是使用segue),並確保帖子控制器是嵌入導航控制器中的第一個。 – Gordonium

回答

2

而不是禁用後退按鈕,我會建議查看視圖控制器的設計順序。

而是這樣的過渡:

NavController - >註冊 - >帖子

嘗試是這樣的

註冊|| NavController>文章

註冊視圖不再通過segue連接到導航控制器。

如果註冊屏幕是必要的,並且它以模態方式存在(或者您希望),您可以檢測app start。當用戶完成註冊後,您可以實例化嵌入在導航控制器中的Posts控制器,而不是繼續使用它。這樣就不會有以前的註冊視圖返回,也沒有後退按鈕。

相關問題