1

我在我的應用程序中有5個視圖控制器,該項目從NavigationController開始。當然,當我可以連接一個動作從視圖1「推」到視圖2時,我的視圖2將具有導航欄和後退按鈕。UINavigationBar在另一個視圖繼續運行時消失?

所以我的佈局是這樣的:1 ViewController有4個圓形矩形按鈕,動作「推」到其他4個視圖。因爲我有5個,所以第5個實際上是我添加的另一個視圖,爲了達到這個視圖,您必須觸摸一個圓形矩形按鈕,我已經放置在第4個視圖中,它將對第五視圖。

這是問題,現在我的第5個視圖沒有導航欄,當我在第5個視圖上添加一個圓形的矩形按鈕以繼續回到第4個視圖時,我現在看到導航欄曾經是已不在那裏。

我試圖手動添加一個導航欄來查看4 & 5,我能夠成功地做到這一點,但我無法通過拖動它們向它們添加「後退」按鈕。有人可以幫我解決這個問題嗎?

+0

聽起來像你用模態賽格來到第五視圖,是正確的嗎? –

+0

@SarabyteStudios是的,這是正確的,這是一個手動的繼續 – vzm

+0

爲了保持導航欄,它需要通過一個push segue呈現。 –

回答

2

而不是添加後退按鈕,您可以使用自定義的segue類。創建一個名爲「flip」的新文件,並將其作爲UIStoryBoardSegue的一個子類。一旦創建的文件打開flip.m和粘貼上面@end

- (void) perform { 

UIViewController *src = (UIViewController *) self.sourceViewController; 
UIViewController *dst = (UIViewController *) self.destinationViewController; 
[UIView transitionWithView:src.navigationController.view duration:.8 

        options:UIViewAnimationOptionTransitionFlipFromLeft 

       animations:^{ 

        [src.navigationController pushViewController:dst animated:NO]; 

       } 

       completion:NULL]; 

} 

這段代碼接下來去你的故事板,並從4視圖到5選擇SEGUE。將樣式設置爲自定義並將segue類設置爲:翻轉

這將允許您保留導航欄和翻頁動畫。

+0

這從第四次到第五次,這很好,但是當我應用相同的賽格式翻轉從第5到第4時,第4次導航欄消失@SarabyteStudios – vzm

+0

對不起,我忘了這一點。然後,最好的方法可能就是使它成爲一個模式,添加一個導航欄和一個完成的按鈕,一個動作將關閉模態視圖控制器。 –

0

您可以簡單地將第5個ViewController嵌入到navigationController中第5個VC現在會有一個導航欄。添加UIBarButton並將其鏈接到執行的方法如下:

[self.navigationController.presentingViewController dismissViewControllerAnimated:YES completion:nil]; 

只是爲了說明,你的第5視圖的導航控制器(你在嵌入式它的人)現在將通過其解僱是presentingViewController

而且,模態翻轉賽將實際上將導航到導航控制器。

編輯/注意:當做這樣的轉換時,我發現以編程方式更容易,所以你可以傳遞任何東西到你的(第五)viewController沒有問題。在這種情況下,您將創建第5個VC,然後創建以5thVC爲根的navigationController。

// setup of firstVC 
UIViewController *firstVC = [[UIViewController alloc] initWithNibName:@"firstVC" bundle:nil]; 

// Create the navCon with firstVC as root 
UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:firstVC]; 

// Set it to flip 
[navCon setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; 

// Now present it 
[self presentViewController:navCon animated:YES completion:nil]; 
相關問題