2009-08-27 6 views
7

तो यह बहुत आसान tabbar को छिपाने के लिए जब आप नेविगेशन नियंत्रक ढेर पर एक दृश्य नियंत्रक धक्का है।मैं एक tabbar कैसे दिखा सकते हैं जब नेविगेशन ढेर पर एक UIViewController धक्का

चलो मान लें कि मैं ढेर में गहराई से धक्का देना चाहता हूं और इसे फिर से दिखाना चाहता हूं?

कुछ बाद में दृश्य नियंत्रक पर

laterUIViewController.hidesBottomBarWhenPushed = NO; 

स्थापना यह फिर से प्रकट होना नहीं है। यह अभी भी छिपा हुआ है।

उत्तर

-1

इसे छेड़छाड़ करने का प्रयास करें, इसलिए आप इसे छिपाने के लिए कहते हैं, यह छुपाता है, लेकिन फिर आप इसे छिपाने के लिए नहीं कहते हैं (मुझे नहीं पता कि यह इसे तब दिखाता है यदि आप इसे सेट करते हैं) लेकिन ऐसा लगता है कि यह नहीं है , या तो वह या आप इसे छिपाने के लिए कह रहे हैं जब दृश्य नियंत्रक जिसे आप चाहते हैं कि बार में पहले से ही धक्का दिया गया हो और यह तब तक छिपाएगा जब तक कि अगला दृश्य नियंत्रक धक्का नहीं दिया जाता है, इसलिए आपको इसे बिना किसी अज्ञात के सेट करने का प्रयास करना चाहिए अपने आप को।

3

आप UIViewController उपवर्गीकरण और

- (void)viewWillAppear:(BOOL)animated { self.hidesBottomBarWhenPushed = YES; } 
- (void)viewWillDisappear:(BOOL)animated { self.hidesBottomBarWhenPushed = NO; } 

अधिभावी और फिर है कि आप नीचे बार दिखाना चाहते हैं दृश्य नियंत्रक के सुपर क्लास के रूप में है कि उपवर्ग उपयोग करने का प्रयास कर सकता है।

+0

मुझे काम करने के लिए ऐसा कुछ मिला। एनीमेशन गलत है हालांकि दृश्य फिर से दिखाई देता है। दृश्य वापस दिखाई देने पर सम्मानित नहीं किया गया था इसलिए मुझे काम वापस करने के लिए हुप्स के गुच्छा से कूदना पड़ा। –

2

यह मेरे लिए काम किया:

- (void)viewWillAppear:(BOOL)animated { self.tabBarController.tabBar.hidden = YES; } 
- (void)viewWillDisappear:(BOOL)animated { self.tabBarController.tabBar.hidden = NO; } 
1

इस समाधान का प्रयास करें: यदि आप दृश्य नियंत्रकों के बीच स्विच चेतन नहीं है यह ठीक काम करना चाहिए।

विचार है कि अपने टैबबार नियंत्रक के दृश्य आकार को बड़ा बनाएं ताकि टैबबार (जो दृश्य के निचले हिस्से में है) स्क्रीन से बाहर हो और दृश्य छुपाते समय दृश्य आकार को पुनर्स्थापित करें।

आपके विचार नियंत्रक है कि एक टैब बार निम्न विधियों को परिभाषित छुपाना चाहिए में:

-(void)viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 

    CGRect r = self.tabBarController.view.frame; 
    r.size.height +=self.tabBarController.tabbar.frame.size.height; 
    self.tabBarController.view.frame = r; 
} 

-(void)viewWillDisappear:(BOOL)animated{ 
    [super viewWillDisappear:animated]; 
    self.tabBarController.view.frame = CGRectMake(0, 0, 320, 480); //for iPhone portrait 
} 

आप सुनिश्चित करने की आवश्यकता है कि में अपने ऐप्लिकेशन के प्रतिनिधि tabbar controler और खिड़की के आउटलेट परिभाषित कर रहे हैं और ठीक से XIB

के साथ जुड़ा हुआ
@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;