簡體   English   中英

在 Storyboard 中隱藏一個 ViewController 的 NavigationBar

[英]Hide NavigationBar for one ViewController in Storyboard

我找到了很多帖子,但仍然沒有解決方案。 我試圖在初始UIViewController上隱藏一個 NavigationBar ,但我仍然想在第二個UIViewController上顯示它。 這是我的故事板:

在此處輸入圖片說明

當我關閉主視圖控制器的 Inferred Top Bar 時,它會在 Storyboard 中消失,但在我運行應用程序時它仍然顯示。 當我對 NavController 中的 NavigationBar 執行相同的操作時,它對所有三個都消失了(因為它們都繼承了無導航欄)。

我想在 ScrollViewV 視圖控制器中顯示 NavBar,但將它隱藏在MainViewController

所有控制器都有相應的 .h 或 .m 文件,但我對如何以編程方式執行此操作感到困惑。 如果您需要查看其他內容,請告訴我。 非常感謝!

在您的 mainViewController 中,您可以執行以下操作:

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:YES animated:animated];
    [super viewWillAppear:animated];
}

您可能希望在隱藏此 ViewController 時顯示導航欄,為此請執行以下操作:

- (void)viewDidDisappear: (BOOL)animated
{
    [self.navigationController setNavigationBarHidden:NO animated:animated];
    [super viewDidDisappear:animated];
}

如果你想在 Storyboard 中保留東西而不是編輯用戶定義的屬性並將navigationController.navigationBarHidden設置為一個布爾值檢查。

self.navigationController.navigationBarHidden = YES;

我注意到您還需要將以下內容添加到您希望導航出現的控制器中。

[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillAppear:animated];

有人想知道如何在 Swift 中做到這一點嗎?

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    self.navigationController?.navigationBar.hidden = true
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM