2013-01-09 48 views
14

मैं साथ UINavigationBar ओवरले जरूरत UIView यहाँ की तरहनेविगेशन बार पर UIView कैसे जोड़ें?

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

वहाँ एनएवी के रूप में वापस बटन के साथ कस्टम UIView का उपयोग कर को छोड़कर यह करने के लिए एक रास्ता है बार?

+1

है। आपके पास इसका पूरा नियंत्रण है और आप जो भी दिखाना चाहते हैं उसे दे सकते हैं .... – CRDave

उत्तर

23

आप जब आपके विचार नियंत्रक दिख रहा है आवेदन के आधार को देखने के लिए एक subview जोड़ सकते हैं

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

यह केवल दिखाया गया है सुनिश्चित करने के लिए आप इसे viewDidAppear और viewDidDisappear प्रतिनिधि विधियों में जोड़ और निकाल सकते हैं। यहां एक उदाहरण दिया गया है जो उन्हें नीला बॉक्स दिखाएगा।

- (void)bringSubviewToFront:(UIView *)view 
अपने मामले में

ताकि होगा::

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

भी भूल नहीं है कि इस तरह से साथ, अपने रिबन से पता चला नहीं किया जाएगा

- (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

स्विफ्ट 2 में ... ओवरले दें: UIView = UIView (फ्रेम: CGRectMake (0, 0, UIScreen.mainScreen() .bounds.size.width, UIScreen.mainScreen()। bounds.size.height)) ओवरले.बैकग्राउंड रंग = यूआईसीओलरफ़्रोमहेक्स (0x000000, अल्फा: 0.7) यूआईपीप्लिकेशन। शेर एप्प्लिकेशन()। कुंजीविंडो! .addSubview (ओवरले) –

12

विधि का उपयोग करें पूरी तरह से छोड़कर अगर आप यह करते हैं:

navigationBar.clipsToBounds = NO; 
1

I NavigationBar छुपाएं और इसके बजाय UIView जोड़ा। यह Navbar के समान दिखता है। फिर लाल बुकमार्क के साथ एक और UIView जोड़ें। इसके अलावा अलग-अलग स्पर्श पर बुकमार्क को एनिमेट करने की संभावना है।

यदि मैंने इस तरह बुकमार्क जोड़ा है: [नेविगेशनबार एडस्यूब्यूव: myRibbon]; यह आकार

0

के आधे पर छिपा हुआ था आप बेहतर stuf इस तरह का करने के लिए है कि आप UIView द्वारा बनाई गई कस्टम नेविगेशन उपयोग करना चाहते हैं यहाँ एक स्विफ्ट 3 जवाब

UIApplication.shared.keyWindow?.addSubview(menuView)