2016-06-23 3 views
0

UINavigationBarの色と半透明を1つのviewController内で変更したいのですが、他のviewControllerに影響を与えることはありません。彼らは共通のUINavigationBarを共有しているため、不可能と思われます。いくつかの同様の質問はUINavigationBarのスタイルをviewWillAppearに変更してviewWillDisappearに復元するように指示していますが、効果は完全ではないことがわかります。私はフォローするアプリがこれをどうやってできるのか知りたい。それぞれに異なる色をできるように、これら二つのビューコントローラは、別ナビゲーションコントローラであるため、それは一般的なUINavigationBarUINavigationControllerで異なるUINavigationBarスタイルを変更するにはどうすればよいですか?

enter image description here

+0

ルミールクックが指摘しているように、これらは2つのi ndependentナビゲーションコントローラ。白い棒が付いているものはその下のものに押し込まれなかった。それは、その下にあるビューコントローラの子ビューコントローラ、または見えないものの下に表示されています。 – pnizzle

答えて

0

あなたがしたいすべての色を変更しているので、ここで何ができるかです:

単純に色の変化をアニメーション化:

-(void)viewWillDisappear:(BOOL)animated 
{ 
    [UIView animateWithDuration: 0.8 animations:^{ 
     [self.navigationController.navigationBar setBarTintColor: [[UIColor orangeColor] colorWithAlphaComponent: 0.1]]; 
    }]; 
} 

-(void)viewWillAppear:(BOOL)animated 
{ 
    [UIView animateWithDuration: 0.8 animations:^{ 
     [self.navigationController.navigationBar setBarTintColor: [[UIColor whiteColor] colorWithAlphaComponent: 0.1]]; 
    }]; 
} 

イラストについては、以下のGIFをクリックしてください

enter image description here

+0

@seguedestination通常、必要なのはviewWillAppearカラーアニメーションのみです。デスティネーションビューコントローラーは同じになりますが、独自の色を指定します。 – pnizzle

+0

pushedVCをパンすると、最初のVCがポップされます。最初のVCで 'viewWillAppear'が呼び出され、コードが実行されるので、' UINavigationBar'の色が変化しています。今度はまだビューをパンすると 'UINavigationBar'が変更されているのが見えます。これは私の例とは異なります。私はviewControllerをパンするのがわかりますが、NavigationBarは白で、最初のものはまだ赤です! – seguedestination

+0

@seguedestinationはい。それはあなたの実装とそのスクリーンショットに含まれるものが2つの異なるものであるからです。スクリーンショットにはおそらくカスタムスライダーがあります。私は自分で書いたが、それがあなたのケースに該当するかどうかわからない。そのアプリの名前は何ですか、私は一見を持って、彼らが何をしたかを教えてくれる – pnizzle

0

を共有していないようです。

+0

新しいナビゲーションコントローラをプッシュするにはどうすればいいですか?プッシュナビゲーションコントローラはサポートされていませんが、現在サポートされています。私はナビゲーションコントローラを提示するとき私はプッシュアニメーションをカスタムする必要がありますか? – seguedestination

+0

@seguedestination Lumialxkが正しいです。それらは2つの独立したナビゲーションコントローラです。そして、いいえ、ナビゲーションコントローラを押すことはサポートされていません。 – pnizzle

+0

@pnizzleありがとう、私はそれを知っています。だから、アプリケーションがUINavigation Controllerを「プッシュ」する方法は? – seguedestination

関連する問題