2012-07-08 108 views
3

有沒有一種方法可以從您的導航控制器內深藏的viewcontroller中執行segue,而不是在調用segue時阻止「返回」按鈕顯示出來?這樣做的理由是,深入瞭解產品之後,我們寧願用戶無法返回並弄亂某些東西。無後退按鈕執行繼續?

回答

15

在應該隱藏後退按鈕的視圖中,您只需在viewDidLoad中添加此行。

self.navigationItem.hidesBackButton = YES; 
+0

隱藏後退按鈕,但它增加了一個按鈕,現在具體的名字? – Darkenor 2012-07-08 03:31:21

+0

@Darkenor然後你必須在某處實例化一個新的leftBarButtonItem,檢查並確保你沒有在任何地方調用leftItemsSupplementBackButton。 – 2012-07-08 03:32:47

1

在你-(void)viewWillAppear:(BOOL)animated你可以叫[self.navigationItem setHidesBackButton:YES animated:NO];

+1

該視圖控制器可以有一個屬性,如果該行應該被調用或不,只需將其設置在prepareForSegue中即可。 – joshOfAllTrades 2012-07-08 03:29:32

0

您必須執行賽格瑞爲「顯示詳細信息」,而不僅僅是「秀」和新視圖將取代目前的一個

enter image description here

+1

如果使用Show Detail,NavController的標題將不會顯示。如果你需要它,你可以添加一個NavBar到ViewController你「顯示」 – goggelj 2015-10-20 09:22:45

1

我個人更喜歡在源UIViewController而不是目標UIViewController中設置隱藏返回按鈕。這允許您每次啓用或禁用後退導航。在viewDidLoad中,您將無法查看哪個segue用於實例化UIViewController。

因此使用賽格瑞準備:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
if ([segue.identifier isEqualToString:@"segueToHideBackButtonIdentifier"]){ 
    [segue.destinationViewController.navigationItem setHidesBackButton:YES]; 
}