आइकन रखते हुए बैक बटन से टेक्स्ट निकालें


92

मैं बैक बटन से टेक्स्ट को हटाना चाहता हूं, लेकिन मैं आइकन रखना चाहता हूं। मैंने कोशिश की है

let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backButton

हालाँकि, यह पाठ और आइकन को पूरी तरह से हटा देता है।

जवाबों:


98

@ Rmd2 की विधि लगभग सही है, लेकिन इसके बजाय आपको नियंत्रक के नेविगेशन बार का चयन करना चाहिए, जिस पर बैक बटन इंगित करेगा और " "बैक बटन फ़ील्ड में टाइप करेगा ।

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


1
सबसे खराब तरीका है, अगर व्यू कंट्रौलर के पास नेविगेशनबार नहीं है तो मुझे टेक्स्ट हटाने के लिए जोड़ना होगा
डैनियल बेल्ट्रामी

142

मुझे पता है कि यह पहले से ही एक उत्तर है, लेकिन आप इसे कोड में भी कर सकते हैं (यदि आप निब के साथ काम कर रहे हैं)

navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)

पहले दृश्य नियंत्रक में ऊपर जोड़ें।

ध्यान दें कि आपको प्रत्येक दृश्य नियंत्रक के लिए ऐसा करने की आवश्यकता है जो धक्का दे रहा है। इसलिए यदि आपके पास 3 व्यू कंट्रोलर हैं, और आप उन सभी से बैक टेक्स्ट को हटाना चाहते हैं, तो आपको व्यू 1 और 2 के व्यू में लाइन जोड़ना होगा।


5
यह सबसे अच्छा समाधान है जो मैंने अब तक देखा है मुझे कोई परेशानी नहीं देता है
खोयाअजोसुआ

4
.Plainको बदल दिया गया था .plain। कोई पूंजी पी।
गल

उत्तम..! मैं यही चाहता था।
जद।

सबसे अच्छा उपाय। धन्यवाद।
बरन

1
@ GastónAntonioMontes, यह iOS13 पर काम करता है, लेकिन यह थोड़ा सा सहज है: खाली शीर्षक backBarButtonItem को पुश व्यू कंट्रोलर पर घोषित किया जाना चाहिए , न कि पुश एक पर
मार्टिन

49

बहुत खोज करने के बाद मुझे सबसे अच्छा और सरल उपाय मिला, इससे Swift 4.2 में लिखे गए सभी व्यू कंट्रोलर्स प्रभावित होंगे और स्विफ्ट 5 में भी काम किया जाएगा

extension UIViewController {
    open override func awakeFromNib() {
        navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
    }  
}

आपका स्वागत है @ e.dimitrow
iOS Lifee

1
आकर्षण की तरह काम करता है
जैरी ओकेफ़ोर

3
ध्यान दें कि यह तभी काम करेगा जब आपका ViewController स्टोरीबोर्ड या Nib में समाहित हो ...
Nathaniel Blumer

1
एक जीनियस समाधान!
WM

3
यह मेरे लिए काम करता था, लेकिन अब (यह अभी भी iOS 12 सिमुलेटर पर काम करता है, सिर्फ नवीनतम iOS 13 नहीं) ...
तान्या

35

बैक बटन का पाठ मास्टर दृश्य के शीर्षक पर निर्भर करता है।

यदि मास्टर दृश्य गायब हो जाता है और फिर से दिखाए जाने पर इसे फिर से सेट करने के लिए शीर्षक को साफ़ करना है:

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

    // needed to clear the text in the back navigation:
    self.navigationItem.title = " "
}

override func viewWillAppear(_ animated: Bool) {
   
    super.viewWillAppear(animated)
    self.navigationItem.title = "My Title"
}

33

यदि आप एक धक्का दिया दृश्य नियंत्रक से एक वापस बटन के शीर्षक को दूर करना चाहता है तो, मान लें <Settingsकरने के लिए <subSettingsViewController में तो आप स्थापित करने के लिए है backBarButtonItem SettingsViewController के दशक में शीर्षक viewWillDisappear () विधि।

उद्देश्य सी:

- (void)viewWillDisappear:(BOOL)animated
    [super viewWillDisappear:animated];
    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:self.navigationItem.backBarButtonItem.style target:nil action:nil];
}

स्विफ्ट:

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}

1
.Plainको बदल दिया गया था .plain। कोई पूंजी पी।
गल

1
उत्तर को खोजकंट्रोलर व्यवहार के लिए अद्यतन करने की आवश्यकता है। उदाहरण के लिए, यदि आप एक अलग resultsVC का उपयोग करते हैं और उस आइटम पर टैप करते हैं, जो किसी अन्य VC को धकेलता है, तो शुरुआती सर्चकंट्रोलर से व्यूविलासपियर विधि को नहीं कहा जाता है, इसलिए शीर्षक अभी भी है
H4Hugo

यह एक अच्छा तरीका नहीं है अगर आप पूरे ऐप में स्क्रीन के लिए कोई समाधान खोज रहे हैं। - यदि आप इस कोड को कुछ "बेस व्यू कंट्रोलर" में जोड़ते हैं, तो दूसरे व्यू कंट्रोलर (जहां आप आमतौर पर टाइटल सेट करते हैं) के व्यूडायरेपियर के बाद पहले व्यू कंट्रोलर के व्यूविलीसपियर को कॉल किया जाएगा ... इससे टाइटल गड़बड़ हो जाएगा। सबसे अच्छा तरीका बैक बटन को ओवरराइट करना है
मिथ्रा सिंघम

परफेक्ट सॉल्यूशन
थैंक्स

28

यदि आप बैक एरो चाहते हैं तो निम्न कोड AppDelegate फ़ाइल में didFinishLaunchingWithOptions विधि में डालें।

स्विफ्ट के लिए

let BarButtonItemAppearance = UIBarButtonItem.appearance()
BarButtonItemAppearance.setTitleTextAttributes([.foregroundColor: UIColor.clear], for: .normal)

2
मुझे यह पसंद है क्योंकि आप एक ही फ़ाइल में अपने ऐप की शैली को मानकीकृत कर सकते हैं और इसे एक बार ऐप प्रतिनिधि से कॉल कर सकते हैं
आरोनियम

4
यह वास्तव में अच्छा है और तेजी से समाधान है, लेकिन ... यह मुश्किल हो सकता है अगर आप एक के अलावा अन्य बार बटन आइटम हैं
:)

3
एक अवलोकन, यदि आप केवल ".normal" विशेषता को लागू करते हैं, तो आप पाठ को क्लिक पर देखेंगे। ".Selected", "। Highlighted", और ".Disabled।" के लिए समान पंक्ति जोड़ें यह सुनिश्चित करने के लिए कि आपको फ़्लिकर टेक्स्ट दिखाई न दे।
निक एन

1
मुझे लगता है कि इसका साइड इफेक्ट होगा, बैक बटन से अलग अन्य बार बटन भी प्रभावित होंगे और इसका स्पष्ट पाठ रंग होगा :(
dhin

23

मेरे मामले में, कस्टम आइकन और शीर्षक के लिए यह चाल (स्विफ्ट 4) थी

    let imgBack = UIImage(named: "ic_back")

    navigationController?.navigationBar.backIndicatorImage = imgBack
    navigationController?.navigationBar.backIndicatorTransitionMaskImage = imgBack

    navigationItem.leftItemsSupplementBackButton = true
    navigationController?.navigationBar.topItem?.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: self, action: nil)

1
उस कोड में अंतिम पंक्ति ने मेरे लिए त्रुटिपूर्ण काम किया। अन्य सभी सुझाव काम नहीं आए, शायद इसलिए कि मेरे विचार नियंत्रकों को एक नौसेना नियंत्रक द्वारा नियंत्रित किया जाता है। किस मामले में, नेविगेशनकंट्रोलर? वास्तव में आवश्यक है।
साल्व

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

14

मैंने पिछले ViewController के StoryBoard शीर्षक पर "" जोड़कर इस समस्या को हल किया। बस एक जगह, खाली नहीं; डी

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


मुझे शीर्षक के लिए पिछली स्क्रीन की आवश्यकता है, इसलिए मुझे लगता है कि मेरे लिए काम नहीं करने वाला है।
lmiguelvargasf

2
मैंने उस शीर्षक को खाली कर दिया है लेकिन फिर भी शीर्षक बैक बटन शीर्षक में आ रहा है
हिमाली शाह

1
शीर्षक, फ़ील्ड को खाली न करें, बैक बटन फ़ील्ड में "" (स्थान) डालें
किरिल एस।

13

अंत में सही समाधान मिला।

बस एक पारदर्शी छवि जोड़ें और अपने AppDelegate में निम्नलिखित कोड जोड़ें।

UIBarButtonItem.appearance().setBackButtonBackgroundImage(#imageLiteral(resourceName: "transparent"), for: .normal, barMetrics: .default)

1
यह निश्चित रूप से सबसे अच्छा जवाब है। मैं पहले UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustmentहैक का उपयोग कर रहा था सबसे अधिक जवाब देने की सलाह देता हूं , लेकिन लंबे शीर्षक के साथ देखने वाले नियंत्रकों के लिए iPhone X पर इसे तोड़ दिया गया। यह समाधान निर्दोष रूप से काम करता है।
नेड

3
सबसे बढ़िया उत्तर। पारदर्शी पाठ रंग से बेहतर काम किया।
विलियम टी।

1
सबसे अच्छा समाधान जो मैंने पिछले 4 वर्षों में उपयोग किया था! आप इसे एक बार, एक जगह पर और सभी देखने वालों के लिए करें !!!
korgx9

1
जब मैंने iOS 12 के साथ यह कोशिश की, तब भी छवि के बगल में टेक्स्ट दिखाई दिया। :(
शॉन मैकमेन्स 14

13

तेजी से 4 में

self.navigationController?.navigationBar.topItem?.title = ""

धन्यवाद, इसने मेरी मदद की, (स्विफ्ट 4.0, एक्सकोड 10.1, आईओएस 12.1.1), धन्यवाद
इन्फिनिटी_कोडिंग 7

3
लेकिन, आप अपना खिताब माता-पिता के वीसी
वी लू

1
यदि बड़ी उपाधि मौजूद है तो topItem लार्ज टाइटल है। काम नहीं करता है
सरंजिथ

10

के लिए स्विफ्ट 4+ में इन पंक्तियों डाल AppDelegateपरdidFinishLaunchingWithOptions

let BarButtonItemAppearance = UIBarButtonItem.appearance()

BarButtonItemAppearance.setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.clear], for: .normal)      
BarButtonItemAppearance.setBackButtonTitlePositionAdjustment(UIOffsetMake(-200, 0), for:UIBarMetrics.default)

जब आप एप्लिकेशन में उपस्थिति सेट करते हैं तो स्पष्ट अग्रभूमि रंग प्रत्येक UIBarButtonItem के लिए होता है, है ना? इसलिए यदि मैं एक पाठ के साथ एक UIBarButtonItem जोड़ता हूं, तो क्या मुझे मैन्युअल रूप से इस बटन के लिए अग्रभूमि रंग बदलना होगा?
कुजडू

1
यह अच्छा है लेकिन जब आप बैक बटन दबाते हैं तो यह टेक्स्ट को दिखाता है
विलियम टी।

यह काम करता है, लेकिन iOS 11 में अन्य बार बटन गायब कर देता है। ऊपर रफीकुल हसन का जवाब समस्या को ठीक कर सकता है
huync

8

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

override func viewDidLoad() {
    super.viewDidLoad()
    navigationController?.navigationBar.topItem?.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}

सही वाला। आईओएस 13 में, नेविगेशन इटेम.बैकबार्टटन इटेम काम नहीं करता है। इसने मेरे घंटों के प्रयासों को बचाया। साभार
मनीष

5

यदि आपके पास ViewControllerA है और आप ViewControllerB में नेविगेट करना चाहते हैं, तो ViewControllerA में, आपको वर्तमान नेविगेशनItem को एक नए UIBarButtonItem के साथ सेट करना चाहिए और किसी अन्य दृश्य नियंत्रक को धक्का देने से पहले रिक्त स्थान पर एक स्ट्रिंग को शीर्षक देना चाहिए:

रिक्त स्थान के साथ शीर्षक को स्ट्रिंग पर सेट करें, आप शून्य या "" (रिक्त स्ट्रिंग) सेट नहीं कर सकते क्योंकि डिफ़ॉल्ट मान शून्य है

let backItem = UIBarButtonItem()
backItem.title = " "
navigationItem.backBarButtonItem = backItem
let controllerB = ViewControllerB()
navigationController?.pushViewController(controllerB, animated: true)

5

इस कोड को प्रत्येक वीसी में डालें जो एक दूसरे को धक्का देता है

navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)

3
let button: UIButton = UIButton (type: UIButtonType.Custom)
button.setImage(UIImage(named: "imageName"), forState: UIControlState.Normal)
button.addTarget(self, action: "backButtonPressed:", forControlEvents: UIControlEvents.TouchUpInside)
button.frame = CGRectMake(0, 0, 30, 30)
let barButton = UIBarButtonItem(customView: button)

self.navigationItem.leftBarButtonItem = barButton

func backButtonPressed(btn : UIButton) {

    // Your code
}

3

नेविगेशन कंट्रोलर स्टैक में सभी व्यू-कॉन्ट्रोलर्स को हटाने के लिए:

उपवर्ग UINavigationController और इसे जोड़ें:

override func show(_ vc: UIViewController, sender: Any?) {
    setEmptyBackButton(vc)
    super.show(vc, sender: sender)
}

override func pushViewController(_ viewController: UIViewController, animated: Bool) {
    setEmptyBackButton(viewController)
    super.pushViewController(viewController, animated: animated)
}

func setEmptyBackButton(_ viewController: UIViewController) {
    viewController.navigationItem.backBarButtonItem =
        UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}

2

कभी-कभी इसका काम केवल शीर्षक रंग बदलने के लिए नहीं होता है, जब शीर्षक लंबा होता है। क्योंकि यह नेविगेशन बार शीर्षक को बाईं ओर स्थानांतरित कर सकता है। तो इसे रोकने के लिए आपको बार बटन शीर्षक को पारदर्शी बनाने के अलावा क्षैतिज रूप से स्थानांतरित करने की आवश्यकता हो सकती है:

let barButtonItemAppearance = UIBarButtonItem.appearance()
    barButtonItemAppearance.setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.clear], for: .normal)
    barButtonItemAppearance.setBackButtonTitlePositionAdjustment(UIOffsetMake(-200, 0), for:UIBarMetrics.default)

1

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

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(true)
    self.navigationItem.title = " "
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationItem.title = "my amazing title"
    navigationItem.backBarButtonItem = UIBarButtonItem(title: " ", style: .plain, target: nil, action: nil)
}

ध्यान दें कि अगर आप केवल शीर्षक सेट को संशोधित किए बिना backBarButtonItem यह होगा दिखाई काम करने के लिए। लेकिन अगर आप एक इशारे का उपयोग करके वापस जाने की कोशिश करते हैं और रद्द किए गए व्यू कंट्रोलर पर रुकते हैं, तो पीछे का शीर्षक वापस आ जाएगा।

स्विफ्ट 4 में काम करना


क्या आप समझाएँगे?
एमआरसी

मेरे पास कंट्रोलर है जो हमेशा बैक बटन के साथ बैक टेक्स्ट दिखा रहा है। इसलिए मेरे मामले में उपरोक्त कोड काम नहीं कर रहा है
शाहबाज़ अकरम

1

आपको नियंत्रक FROM के नेविगेशन बार का चयन करना चाहिए जो बैक बटन इंगित करेगा और बैक बटन फील्ड में "" टाइप करेगा।

जैसे यदि आप A कंट्रोलर को B कंट्रोलर पर धकेल रहे हैं, तो A कंट्रोलर नेविगेशन बार में व्हॉट्सएप डालें।


1

Xcode 10, स्विफ्ट 4+

यहाँ दूसरों के लिए भी ऐसा ही उत्तर है लेकिन यह ध्यान देने योग्य है कि यदि पाठ अभी भी साफ़ नहीं हुआ है, तो आपको स्पेस पर क्लिक करना होगा और फिर एंटर करें।

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


1

विवरण

  • Xcode संस्करण 10.2.1 (10E1001), स्विफ्ट 5

उपाय

1. UINavigationController के कस्टम वर्ग बनाएँ

import UIKit

class NavigationController: UINavigationController {
    override func viewDidLoad() {
        super.viewDidLoad()
        delegate = self
    }
}

extension NavigationController: UINavigationControllerDelegate {
    func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
        if viewController.navigationItemBackButtonTextIsHidden {
            viewController.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
        }
    }
}

2. UIViewController एक्सटेंशन जोड़ें

import UIKit

extension UIViewController {
    @objc var navigationItemBackButtonTextIsHidden: Bool { return false }
}

3. अपने ViewController क्लास को अपडेट करें

import UIKit

class ViewController: UIViewController {
    override var navigationItemBackButtonTextIsHidden: Bool { return true }
}

पूरा नमूना

import UIKit

// MARK: - ViewController

class ViewController: UIViewController {

    var screenCounter = 1

    override func viewDidLoad() {
        super.viewDidLoad()
        setupNavigationItem()
    }

    override var navigationItemBackButtonTextIsHidden: Bool { return (screenCounter % 2) == 0 }
}

extension ViewController {

    private func setupNavigationItem() {
        navigationItem.title = "VC \(screenCounter)"
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "push", style: .plain, target: self, action: #selector(pushBarButtonTouchedUpInside))
    }

    @objc func pushBarButtonTouchedUpInside(button: UIBarButtonItem) {
        guard let navigationController = navigationController else { return }
        let viewController = ViewController()
        viewController.screenCounter = screenCounter + 1
        viewController.view.backgroundColor = .white
        navigationController.pushViewController(viewController, animated: true)
    }
}

// MARK: - NavigationController

class NavigationController: UINavigationController {
    override func viewDidLoad() {
        super.viewDidLoad()
        delegate = self
    }
}

extension NavigationController: UINavigationControllerDelegate {
    func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
        if viewController.navigationItemBackButtonTextIsHidden {
            viewController.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
        }
    }
}

// MARK: - UIViewController extension

extension UIViewController {
    @objc var navigationItemBackButtonTextIsHidden: Bool { return false }
}

परिणाम

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


1

ViewControllersमेरे लिए सभी को ओवरराइड करने का एक विकल्प था विस्तार करना UINavigationControllerऔर सेट backBarButtonItemकरनाtopViewController

Swift 5 Xcode 11.2.1 पर:

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

        let backButton = UIBarButtonItem(title: " ", style: .plain, target: nil, action: nil)
        self.topViewController?.navigationItem.backBarButtonItem = backButton
    }
}

1

इस प्रोग्राम को करने का सबसे आसान तरीका backBarButtonItemपेरेंट व्यू कंट्रोलर (एक कंट्रोलर जिसे पुश कहते हैं) से सेट किया जाता है।

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        let backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
        navigationItem.backBarButtonItem = backBarButtonItem
    }
}

यहां और अधिक विवरण https://sarunw.com/posts/how-to-remove-text-from-uinavigationbar-back-button/


1

आप किसी प्रतिनिधि विधि का उपयोग करके पाठ को बैक बटन से हटा सकते हैं UINavigationController

class CustomNavigationController: UINavigationController {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.delegate = self
    }

}

extension CustomNavigationController: UINavigationControllerDelegate {
    
    func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
        viewController.navigationItem.backBarButtonItem = UIBarButtonItem(title: String(), style: .plain, target: nil, action: nil)
    }
    
}

0

स्विफ्ट के साथ Xcode 9.2 में इस तरह काम किया:

override func viewWillDisappear(_ animated: Bool) {
   super.viewWillDisappear(true)
   navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}

0

ऐसे मामले के लिए जहां हमारा पिछले व्यू कंट्रोलर (यानी अगर हम किसी फ्रेमवर्क में काम कर रहे हैं) पर नियंत्रण नहीं है, तो हम निम्न बटन के शीर्षक को निम्नानुसार हटा सकते हैं:

// For iOS 10
navigationController?.navigationBar.items?.last?.backBarButtonItem?.title = String()

// For iOS 11
navigationController?.navigationBar.items?.last?.backBarButtonItem?.title = nil

यह क्या करता है नेविगेशन के स्टैक के अंतिम आइटम पर नेविगेट करना और इसके पीछे का शीर्षक हटाना है। मूल दृश्य को सहेजना सुनिश्चित करें जब हमारा व्यू कंट्रोलर दिखाई देगा:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    originalBackButtonTitle = navigationController?.navigationBar.items?.last?.backBarButtonItem?.title
    // Delete title somewhere here...
}

और फिर इसे पुन: असाइन करें, ताकि ऐप के किसी भी हिस्से को बाधित न करें:

override func viewWillDisappear(_ animated: Bool) {
    navigationController?.navigationBar.items?.last?.backBarButtonItem?.title = originalBackButtonTitle
    super.viewWillDisappear(animated)
}

0

इससे आपकी समस्या दूर हो जाएगी:

    import UIKit

    extension UINavigationController{

    func customizeBackArrow(){
        let yourBackImage = UIImage(named: "icon_back_arrow")
        self.navigationBar.backIndicatorImage = yourBackImage
        self.navigationBar.tintColor = Common.offBlackColor
        self.navigationBar.backIndicatorTransitionMaskImage = yourBackImage
        navigationItem.leftItemsSupplementBackButton = true
        self.navigationBar.topItem?.backBarButtonItem = UIBarButtonItem(title: "", 
           style: .plain, target: self, action: nil)

    }
}

0

मैंने कुछ उत्तरों की कोशिश की है और मैं उन्हें सभी मामलों में काम नहीं करवा सकता। यदि यह सेट है तो नेविगेशन बार के शीर्षक को प्रभावित नहीं करने के लिए यह एक समाधान है।

    guard let items = viewController.navigationController?.navigationBar.items else { return }
    for item in items {
        if item.title == nil {
            item.title = ""
        }
    }

0

अनचाहे दुष्परिणामों के बिना आसान प्रोग्राममैटिक तरीका, नेविगेशनआईम.बैकबार्टटन इटेम को खाली कर रहा है, स्रोत नियंत्रक के जागफरोमीनब विधि (जिसे आप से नेविगेट कर रहे हैं) में एक खाली आइटम के साथ।

override func awakeFromNib() {
    super.awakeFromNib()
    navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}

नोट: यदि आपने बैक बटन को बाद में प्रारंभ किया है, जैसे व्यूडीडलड () विधि से, तो आप स्वाइप-बैक खो देंगे कार्यक्षमता (बाएं किनारे से दाईं ओर स्वाइप करने से आपको नेविगेशन स्टैक में एक कदम पीछे ले जाता है)।

फिर, यदि आप अलग-अलग डेस्टिनेशन कंट्रोलर्स के लिए अलग-अलग बैक बटन टेक्स्ट चाहते हैं और यदि आप सेग का उपयोग कर रहे हैं, तो आप शीर्षक को तैयार कर सकते हैं (सेग्यु के लिए :, प्रेषक :) विधि, इस तरह से:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let item = navigationItem.backBarButtonItem {
        switch segue.identifier {
        case "SceneOne": item.title = "Back"; break
        case "SceneTwo": item.title = "Home"; break
        case "SceneThree": item.title = nil; break // Use this scene's title
        default: item.title = "" // No text
        }
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.