स्विफ्ट - नेविगेशन आइटम में बैक बटन कैसे छिपाएं?


103

अभी मेरे पास दो दृश्य नियंत्रक हैं। मेरी समस्या यह है कि मुझे नहीं पता कि दूसरे व्यू कंट्रोलर में संक्रमण के बाद बैक बटन को कैसे छिपाया जाए। अधिकांश संदर्भ जो मुझे मिले, वे उद्देश्य-सी में हैं। मैं इसे स्विफ्ट में कैसे कोड करूं?

ऑब्जेक्टिव-सी में बैक बटन कोड छिपाएं

[self.navigationItem setHidesBackButton:YES animated:YES];

जवाबों:


366

के अनुसार प्रलेखन के लिए UINavigationItem:

self.navigationItem.setHidesBackButton(true, animated: true);

30
स्नार्कनेस मुफ्त में है।
ग्रेग

58
यह आपको @ पॉल्व 11 से भयभीत कर सकता है, लेकिन स्पष्ट तथ्य Google में "स्विफ्ट हाइड बैक बटन" टाइप कर रहा है और यहां आ रहा है - जैसे मैंने अभी किया - आधिकारिक दस्तावेज में पाठ के माध्यम से जुताई करने की तुलना में टन जल्दी है।
जोसेफ बेयम्स 'मॉम

4
जबकि पहले दृश्य नियंत्रक में बैक बटन का नाम परिभाषित किया गया है, यह देखना दिलचस्प हो सकता है कि इसे छिपाने के लिए कोड को दूसरे दृश्य नियंत्रक (बटन दिखाने वाला) में लागू किया जाना चाहिए।
XLE_22

38

मामले में आप एक का उपयोग कर रहे हैं UITabBarController:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.tabBarController?.navigationItem.hidesBackButton = true
}

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

1
@ हेल्मुटग्रैंड यदि आप ध्यान दें कि ब्रूनो एक टैब बार नियंत्रक का उपयोग कर रहा है, तो यह अंतर है। स्वीकार किए गए उत्तर के मामले में, वीसी को एक नेविगेशन नियंत्रक में एम्बेडेड होने की संभावना है।
बादल

@cloudcal मैं एक tabBar का उपयोग नहीं कर रहा हूं, फिर भी दोनों जवाबों ने काम किया। दोनों ने पीछे का बटन छिपा दिया। मुझे लगा कि अगर स्क्रीन पर व्यू कॉन्ट्रोलर होता है तो वे अलग व्यवहार करेंगे और फिर मैं बैक बटन को छिपाना चाहता था। फिर भी दोनों ने एक जैसा अभिनय किया। मैं उनके बीच कोई अंतर नहीं पा रहा था। मैं कह रहा हूं कि ब्रूनो का जवाब गलत है। शुद्ध नेविगेशनकंट्रोलर के बजाय इससे कोई फर्क नहीं पड़ता। मैंने
Honey

20

तीव्र

// remove left buttons (in case you added some)
 self.navigationItem.leftBarButtonItems = []
// hide the default back buttons
 self.navigationItem.hidesBackButton = true

यह स्पष्ट है कि navigationItem.hidesBackButton = true सही उत्तर है। यदि बाएं बटन हैं, जो मामला हो सकता है, तो यह निश्चित रूप से सही उत्तर है, और इसे अधिक पूर्ण उत्तर माना जाना चाहिए।
truedat101

self.navigationItem.hidesBackButton = trueउम्मीद के मुताबिक काम कर रहा है।
शहाबुद्दीन वंशीवाला




0

यहाँ उत्तर का एक संस्करण है

स्विफ्ट 5

कि आप इसे स्टोरीबोर्ड से उपयोग कर सकते हैं:

// MARK: - Hiding Back Button

extension UINavigationItem {

    /// A Boolean value that determines whether the back button is hidden.
    ///
    /// When set to `true`, the back button is hidden when this navigation item
    /// is the top item. This is true regardless of the value in the
    /// `leftItemsSupplementBackButton` property. When set to `false`, the back button
    /// is shown if it is still present. (It can be replaced by values in either
    /// the `leftBarButtonItem` or `leftBarButtonItems` properties.) The default value is `false`.
    @IBInspectable var hideBackButton: Bool {
        get { hidesBackButton }
        set { hidesBackButton = newValue }
    }
}

व्यू कंट्रोलर के हर नेविगेशन आइटम में यह नया गुण गुण निरीक्षक के शीर्ष भाग में होगा


0

यह मेरे लिए स्विफ्ट 5 में एक आकर्षण की तरह काम करता है, बस इसे अपने viewDidLoad () में जोड़ें

self.navigationItem.setHidesBackButton(true, animated: true)

-4

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

इंस्पेक्टर इंस्पेक्टर के पास जाएं और बैक बटन को छिपाने के लिए नेविगेशन बार को अनचेक करें।

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