2013-01-09 44 views
14

は私がUINavigationBarを重ねる必要があるUIViewナビゲーションバーにUIViewを追加するには?

ここのような

http://screencast.com/t/ZKXNFcAzVu & GT; ">

NAVとしてバックボタンでカスタムUIViewのを使用することを除いてこれを行う方法がありますバー?

+1

です。あなたはそれを完全に制御するよりも、あなたは何をしたいかを与えることができます.... – CRDave

答えて

23

あなたはあなたのビューコントローラが表示されているときにのみ示されていることを確認するために、アプリケーション

[[[UIApplication sharedApplication] keyWindow] addSubview:vMyCustomUIView]; 

のベースビューにサブビューを追加することができますviewDidAppearviewDidDisappearデリゲートメソッドで追加して削除することができます。青いボックスが重なって表示される例を次に示します。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib.  
    vTestView = [[UIView alloc] initWithFrame:CGRectMake(10.0f, 
                 10.0f, 
                 100.0f, 
                 100.0f)]; 
    vTestView.backgroundColor = [UIColor blueColor]; 
} 


-(void)viewDidAppear:(BOOL)animated 
{ 
    [[[UIApplication sharedApplication] keyWindow] addSubview:vMyCustomUIView]; 
} 
-(void)viewDidDisappear:(BOOL)animated 
{ 
    [vMyCustomUIView removeFromSuperview]; 
} 
+0

swift 2 ... let overlay:UIView = UIView(フレーム:CGRectMake(0、0、UIScreen.mainScreen() UIColorFromHex(0x000000、alpha:0.7) UIApplication.sharedApplication().keyWindow!.Subview(overlay)。 –

12

方法で使用しますとなり、あなたのケースでそう

- (void)bringSubviewToFront:(UIView *)view 

を:

[navigationBar addSubview:myRibbon]; 
[navigationBar bringSubviewToFront:myRibbon]; 

はまた、この方法で、あなたのリボンが示されたことはありませんことを忘れないでくださいこれを行う場合を除いて完全に:

navigationBar.clipsToBounds = NO; 
1

代わりにNavigationBarを隠し、UIViewを追加しました。 Navbarと同じように見えます。 次に、1つのUIViewに赤いブックマークを追加します。それに加えて、別途タッチでブックマークをアニメーション化することも可能です。

この方法でブックマークを追加した場合: [navigationBar addSubview:myRibbon];あなたはUIViewのが作成したカスタムナビゲーションを使用することよりも良好STUFのこの種を行いたい場合は それはサイズ

0

の半分に隠れていたがここでスウィフト3答え

UIApplication.shared.keyWindow?.addSubview(menuView) 
関連する問題