नेविगेशन पट्टी के बिना UINavigationController?


117

मेरे पास एक सार्वभौमिक ऐप है, और iPad संस्करण पर मैं UISplitViewControllerमेल ऐप के समान इंटरफ़ेस बनाने के लिए उपयोग कर रहा हूं ।

मुझे नए विवरणों को देखने में परेशानी हो रही थी, इसलिए मैंने एक उपयोग करने का निर्णय लिया, ताकि मैं आवश्यकतानुसार UINavigationControllerकेवल पुश और पॉप दृश्य देख सकूं। हालाँकि, मैं नेविगेशन दृश्य या टूलबार का उपयोग नहीं करना चाहता। लेकिन मैं जो भी करता हूं, मैं नेविगेशन बार को छिपा नहीं सकता।

मैंने IB में "नेविगेशन बार दिखाता है" को अनचेक करने की कोशिश की है, और मैंने सेटिंग की भी कोशिश की है:

[self.navigationController setNavigationBarHidden:YES];

में viewDidLoad/ viewDidAppear/ viewWillAppear। मैंने इसे उन प्रत्येक दृश्यों में भी आज़माया है जिन्हें धक्का दिया जाएगा। कुछ भी काम नहीं करता है।

क्या यहाँ कुछ याद आ रहा है? क्या UINavigationControllerटूलबार या नेविगेशन बार के बिना यह संभव है ?


कक्षा selfका सुपरक्लास किसका उदाहरण है?

जवाबों:


192

आपको निम्नलिखित कार्य करने में सक्षम होना चाहिए:

self.navigationController.navigationBar.isHidden = true //Swift 5

जहां स्व.नवीगेशनकंट्रोलर (स्पष्ट रूप से) यूएनिविसीकंट्रोलर का एक उदाहरण है। मेरे लिए काम करने लगता है, लेकिन मैंने इसे पोस्ट करने से पहले केवल इसका संक्षिप्त परीक्षण किया।


2
तो, आपके मामले में, self.navigationController.navigationBar.hidden = YES;
आश्विन

4
यह किया! हालांकि मैं यह जोड़ूंगा कि मैं कोड के माध्यम से करने के बजाय आईबी में Nagitation टूलबार के लिए छिपे हुए बॉक्स की जांच करने में सक्षम था। धन्यवाद!
२३'११

1
हाँ, इसके बारे में क्षमा करें। मुझे इस तथ्य पर उठाया जाना चाहिए कि आप आईबी का उपयोग कर रहे थे और कोड का उपयोग करने के बजाय छिपे हुए बॉक्स का उल्लेख किया। मैं हाल ही में .xib फ़ाइलों के बिना पूरी तरह से प्रोग्रामेटिक रूप से अपने सभी इंटरफेस बनाने की एक किक पर गया हूं, इसलिए सीधे मेरे उत्तर के लिए उस पर गया।
अश्विन

5
मुझे लगता है कि यह इस तरह से मेरे विचार नियंत्रक में दृश्य में है - (void)viewWillAppear:(BOOL)animated { self.navigationController.navigationBar.hidden = YES; } और यह काम करता है
अली

2
NavBar छिपा हुआ है, लेकिन मेरा व्यू कंट्रोलर स्क्रीन फुल स्क्रीन तक नहीं फैला है
ArdenDev

40

यदि आप कोई नेविगेशन बार नहीं चाहते हैं, और आप चाहते हैं कि सामग्री को उस स्थान पर समायोजित किया जाए जहां नेविगेशन बार सामान्य रूप से होगा, तो आपको इसका उपयोग करना चाहिए

self.navigationController.navigationBarHidden = YES;

यह आपको इस तरह से परिणाम देता है:

यहां छवि विवरण दर्ज करें

जबकि self.navigationController.navigationBar.hidden = YES;आपको एक ऐसी जगह मिलती है जहां नेविगेशनबार होना चाहिए। ऐशे ही:

यहां छवि विवरण दर्ज करें


IOS 6 के परिणामों में अंतर पर बहुत अच्छा अंतर। IOS 7 के रूप में, ऐसा प्रतीत होता है कि स्थान हटा दिया गया है, लेकिन मैं अधिक लोगों के सत्यापन के लिए प्रतीक्षा करूंगा।
एलेक्स ज़ावाटोन 16

39

Xcode में 4.3.2:

  1. स्टोरीबोर्ड में नेविगेशन नियंत्रक का चयन करें
  2. (दाईं ओर) यूटिलिटीज पैनल में एटिट्यूड इंस्पेक्टर का चयन करें
  3. नेविगेशन नियंत्रक श्रेणी के अंतर्गत आपके पास दो चेक बॉक्स हैं:

    [] नेविगेशन बार दिखाता है

    [] टूलबार दिखाता है

मेरे लिए काम किया ...


8

स्विफ्ट 4

मैं इसे viewWillAppear में छिपाता हूं

     override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        self.navigationController?.isNavigationBarHidden = true;
    }

तब आप इसे वापस रख सकते हैं जब आप एक सेग को धक्का देते हैं (यदि आप अगले दृश्य पर बैक बटन चाहते हैं)

     override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
     {
        self.navigationController?.isNavigationBarHidden = false;
     }

3

प्रोग्राम 3 को स्विफ्ट करें

self.navigationController.isNavigationBarHidden = true

या

self.navigationController.navigationBar.isHidden = true

नोट: मुझे iOS 10 पर इन दोनों तरीकों के परीक्षण के बीच अंतर नहीं दिखाई दिया।


1

ये सभी उत्तर अभी भी स्टेटस बार के लिए शीर्ष पर एक स्थान छोड़ते हैं - साथ ही इसे हटाने के लिए इस पंक्ति को जोड़ें:

navController.navigationBar.isHidden = true
navController.accessibilityFrame = CGRect.zero
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.