2012-08-07 16 views
7

私はストーリーボードのiOSアプリを持っていますが、これにはいくつかのビューがあります。 "ツールバーの表示"オプションを選択してUINavigationControllerを開き、ビュー階層全体に表示します。ストーリーボードを使用してUINavigationControllerのツールバーを非表示にするにはどうすればいいですか?

View A --(push)--> View B --(push)--> View C 

ビューAはビューBを ビューBをプッシュするために使用されるツールバー上のボタンを使って、通常のビューコントローラである:

は私のビューの流れは3つのビュー、A、B、およびCであると言いますテーブルコントローラなので、私はここにツールバーを隠したいと思う。 View Cは、ビューAのような別のビューで、ツールバーを表示する必要があります。

Xcode/Storyboardの場合、ビューBIで「プッシュでボトムバーを表示」を選択すると、まさしくそのようになります。ボトムバーはビューBでは非表示になります。同様に、[ボトムバー]オプションを選択すると、View B. Goodのバーは表示されません。

私は何をしていても、ビューBのいずれかのオプションを使用しても、ビューCのツールバーは表示されません。ビューCのツールバーを推測として設定し(プッシュで非表示にしない)私はそれを手動で 'ツールバー'に設定しています。

アイデア?

答えて

15

@Zoltánは言ったように、ストーリーボードは完全な答えを提供していません。

viewDidLoadまたはviewWillAppearにself.navigationController.toolbarHidden = YES/NOを設定することは機能的ですが、ビュートランジションアニメーション中にツールバーの代わりに黒い四角形が表示されます。

は、ここで私はストーリーボードに「隠しプッシュオン」オプションのアニメーションの滑らかさを模倣するビューBコントローラ(とビューCのための逆)のためにやったことだ:

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

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [self.navigationController setToolbarHidden:NO animated:YES]; 
} 
+0

[super viewWillAppear:animated]と[super viewWillDisappear:animated]を含めましたか? –

+1

superのviewWillAppearとviewWillDisappearを呼び出すことを忘れないでください! – liefersfl

+1

パーフェクト! Swiftで:self.navigationController?.setToolbarHidden(true、animated:true) – abanet

2

私はあなたが純粋にストーリーボードでそれを行うことはできないと思います。ただし、常に表示するように設定するだけで、表示したいすべてのビューに対してボタンを置くことができます。 self.navigationController.toolbarHidden = YES;あなたがツールバーを表示したくないviewcontrollerがロードされるとき。 その後、ツールバーが必要な別のVCが表示されたら、toolbarHiddenをNOに設定します。

+0

これは動作しますが、ちょうど。 これは、ツールバーが消えてしまった醜い黒いマークをトランジションで表示します。しかし、必要なコードと、ストーリーボードがすべてを提供することができないという点では正しいです。 – Freney

関連する問題