2010-06-01 18 views
18

मेरे पास एक टैब बार नियंत्रक के साथ एक एप्लिकेशन है और प्रत्येक दृश्य में एक नेविगेशन नियंत्रक होता है। मेरा मेनविंडो निम्नानुसार दिखता है: alt text http://www.freeimagehosting.net/image.php?7bc867a594.pngनेविगेशन में नियंत्रक को दबाते समय पैरेंट टैबबार को कैसे छिपाना है नियंत्रक

सब कुछ ठीक काम करता है, लेकिन नेविगेशन नियंत्रक को विवरण दृश्य को दबाते समय मुझे एक समस्या दिखाई देती है। एक tableviewcontroller कि टैब बार नियंत्रक के अंतर्गत आता है के लिए didSelectRowAtIndexPath में (एक छवि में नवीनतम कहा जाता है) मैं यह कर रहा हूं:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
ArticleViewController *articleController = [[ArticleViewController alloc] initWithNibName:@"ArticleView" bundle:nil]; 

[self.navigationController pushViewController:articleController animated:YES]; 

[articleController release]; 
articleController = nil; 

}

क्योंकि यह प्रदर्शित करने के लिए की जरूरत है ArticleViewController अपनी ही tabbar है अलग अलग बातें। समस्या यह है कि जब मैं ArticleViewController को नेविगेशन नियंत्रक में दबाता हूं तो मैं दृश्य के नीचे दोनों टैबबार देखता हूं। क्या इस समस्या को हल करने का कोई तरीका है? यहाँ

अग्रिम

उत्तर

61

घंटे खर्च करने और कोई प्रश्न पोस्ट करने के बाद धन्यवाद मैंने पाया कि इस समस्या का समाधान ArticleController की इन्स्टेन्शियशन के बाद निम्न पंक्ति जोड़कर किया जाता है।

articleController.hidesBottomBarWhenPushed = YES; 
+1

धन्यवाद इतना पर इंस्पेक्टर>जांचछिपाएं बॉटम बार गुण! यह आकर्षण की तरह काम करता है! आपने मेरा दिन बना दिया! – Tommy

+0

लक्ष्य नोट को बनाने के तुरंत बाद 'छिपाएं BottomBarWhenPushed' सेट किया गया था ViewController –

7

एक बहुत ही सरल समाधान:

destinationViewController.hidesBottomBarWhenPushed = YES; 

आपके मामले में:

articleController.hidesBottomBarWhenPushed = YES; 

आशा इस मदद करता है!

17

यदि आप कोडिंग पर स्टोरीबोर्ड कॉन्फ़िगरेशन पसंद करते हैं तो उसके लिए एक टॉगल है। बस destinationViewController जाना> इंस्पेक्टर गुण:

enter image description here

+1

मुझे यकीन नहीं है कि यह क्यों कम किया गया था लेकिन यह मेरे लिए काम करता था। – iSee

0

आप दृश्य नियंत्रक है, जो आपको दे रहे हैं में नीचे दिए गए कोड जोड़ सकते हैं।

-(BOOL)hidesBottomBarWhenPushed 
{ 
    return YES; 
} 

यह धक्का दिया दृश्य नियंत्रक आप दृश्य नियंत्रक tabbar पॉप केवल और के रूप में में tabbar छुपा देगा बाकी हिस्सों में प्रकट करें सभी दृश्य नियंत्रकों बनी हुई है।

स्विफ्ट संस्करण (3.x और इसके बाद के संस्करण)

override var hidesBottomBarWhenPushed: Bool { 
    get { 
     return navigationController?.topViewController == self 
    } 
    set { 
     super.hidesBottomBarWhenPushed = newValue 
    } 
} 

धन्यवाद

0
तेज 3 के लिए

, आप नीचे दिए

var frame = self.tabBarController?.tabBar.frame 
    frame?.origin.y = self.view.frame.size.height - (frame?.size.height)!+112 
    UIView.animate(withDuration: 0.2, animations: { 
     self.tabBarController?.tabBar.frame = frame! 
    }) 
    self.navigationController?.pushViewController(viewController, animated: true) 

तरह pushviewController कोड से पहले tabbar को सामने लाने के द्वारा एक ही कोड लिखने या उस टैबबार को अनदेखा करने के लिए केवल उपयोग करें जिसका उपयोग आप

viewController.hidesBottomBarWhenPushed = false 
का उपयोग कर सकते हैं
0

enter image description here

जाओ Xcode में बिल्डर इंटरफेस करने -> खुला विशेषता निरीक्षक और आइटम जाँच आप टैब बार दिखाने के लिए नहीं करना चाहते हैं दृश्य नियंत्रक के लिए 'पुश पर निचला बार छिपाएं'। यह काम करेगा!!

1

आप स्टोरीबोर्ड के माध्यम से पैरेंट टैबबार को सरल बना सकते हैं।

करें ViewController>पुश