मैं अपने iOS स्विफ्ट ऐप में टैब बार को छिपाने का तरीका जानने की कोशिश कर रहा हूं। मैं किसी भी फैंसी एनिमेशन या किसी भी चीज़ की परवाह नहीं करता। बस कुछ मैं ViewDidLoad () फ़ंक्शन में रख सकता हूं।
जवाबों:
आप बस इसे अपनी ViewDidLoad()
विधि में उपयोग कर सकते हैं ।
self.tabBarController?.tabBar.hidden = true
स्विफ्ट 3.0, 4.0, 5.0 के लिए :
self.tabBarController?.tabBar.isHidden = true
या आप टैब बार की z स्थिति को इस तरह से बदल सकते हैं:
self.tabBarController?.tabBar.layer.zPosition = -1
और यदि आप इसे फिर से दिखाना चाहते हैं:
self.tabBarController?.tabBar.layer.zPosition = 0
स्वीकृत उत्तर काम करता है, लेकिन अन्य दृश्य में संक्रमण का एक तड़का हुआ एनीमेशन है (टैब बार एनीमेशन)
यह भी जोड़ना चाहता था कि कल्पेश का समाधान मेरे लिए पूरी तरह से काम करता है, लेकिन मुझे पता चला कि हर व्यू कंट्रोलर के पास hidesBottomBarWhenPushed (चेक आउट स्टोरीबोर्ड) की एक विशेषता है। यदि आप टैब बार को छुपाना चाहते हैं, तो आपको उस पर एक टिक लगाना चाहिए। और यह बहुत अच्छा काम करेगा।
अद्यतन: मुझे यकीन नहीं है कि अगर यह एक ज्ञात बात है, लेकिन यहाँ क्या सेब प्रलेखन पृष्ठ कहते हैं:
मुझे लगता है कि इसका मतलब है कि आपको सबसे ऊपरी दृश्य नियंत्रक पर hidesBottomBarWhenPushed का मूल मान सेट करना होगा (नेविगेशन स्टैक पर पहला वाला।) एक बार जब आप यह निर्धारित कर लेते हैं कि आप सही हैं, तो आप दूसरे व्यू-कंट्रोलरों पर झूठे या सच में बदल सकते हैं। ढेर। लेकिन, अगर आपका सबसे ऊपरी दृश्य नियंत्रक का छुपाता है BottomBarWhenPushed मान गलत है, तो यह नेविगेशन स्टैक पर अन्य नियंत्रकों के लिए एक टैब बार नहीं दिखाएगा।
पुश सेट कंट्रोलर से पहले
let objCreateEventVC = CreateEventVC()
objCreateEventVC.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(objCreateEventVC, animated: false)
setViewControllers
TabBar की isHidden प्रॉपर्टी को सेट करने की आवश्यकता नहीं है।
बस, ViewController पर जाएं (StoryBoard में) -> इंस्पेक्टर इंस्पेक्टर -> 'व्यू कंट्रोलर' सेक्शन के तहत 'पुश बॉटम बॉटम बार पुश' चेकबॉक्स चुनें। यह एक आकर्षण की तरह काम करता है।
यदि आप 'हैडिड' तरीके से जाते हैं, तो आपको बहुत सी हैंडलिंग करने की आवश्यकता होती है, अर्थात जब आप वापस जाते हैं तो इसे फिर से प्रकट करने के लिए और टैबबर्ड को छिपाने के बाद नीचे की खाली जगह को हटाने के लिए भी।
Hide Bottom Bar on Push
एक अप्रिय एनीमेशन है, imo।
स्विफ्ट 3।
self.tabBarController?.tabBar.isHidden = true
यह स्विफ्ट 4.0, 4.1, 4.2, 5.0 और बाद के लिए प्रोग्रामेटिक रूप से तरीका है :
tabBarController?.hidesBottomBarWhenPushed = true
या
hidesBottomBarWhenPushed = true
नेवीगेशनबार और टैब्बर को छिपाने के लिए मैं अगले फ़ंक्शन का उपयोग करता हूं:
var tabBarHeight : CGFloat!
func fullScreenAction(){
if navigationController?.isNavigationBarHidden ?? false {
//Show navigationBar
navigationController?.setNavigationBarHidden(false, animated: false)
//Show tabBar
tabBarController?.tabBar.isHidden = false
//Update the height of tabBar
if (!(tabBarController?.tabBar.frame.size.height.isEqual(to: 0))!) {
tabBarHeight = self.tabBarController?.tabBar.frame.size.height
}
tabBarController?.tabBar.frame.size.height = tabBarHeight
} else {
//Hide navigationBar
navigationController?.setNavigationBarHidden(true, animated: false)
//Hide tabBar
tabBarController?.tabBar.isHidden = true
//Update the height of tabBar
tabBarHeight = tabBarController?.tabBar.frame.size.height
tabBarController?.tabBar.frame.size.height = 0
}
}
जब स्क्रीन ओरिएंटेशन ने टैबबार की ऊंचाई को भी बदल दिया है, तो मैं अगले फ़ंक्शन का उपयोग ऊंचाई को आकार देने के लिए फुलस्क्रीन से बाहर निकलने के लिए करता हूं:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
if navigationController?.isNavigationBarHidden ?? false {
navigationController?.setNavigationBarHidden(false, animated: false)
tabBarController?.tabBar.isHidden = false
}
}
मुझे आशा है कि यह आपके लिए उपयोगी है।
vc.hidesBottomBarWhenPushed = true
काम करना चाहिए। टैबबार को मैन्युअल रूप से न दिखाएँ और छिपाएँ।