আইকনটি রেখে পিছনে বাটন থেকে পাঠ্য সরান


96

আমি পিছনের বোতামটি থেকে পাঠ্যটি সরাতে চাই, তবে আমি আইকনটি রাখতে চাই। আমি চেষ্টা করেছি

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

তবে এটি সম্পূর্ণ পাঠ্য এবং আইকনটিকে সরিয়ে দেয়।

উত্তর:


99

@ আরএমডি 2 এর পদ্ধতিটি প্রায় সঠিক, তবে পরিবর্তে আপনার নিয়ামকের ন্যাভিগেশন বারটি নির্বাচন করা উচিত যা পিছনে বোতামটি নির্দেশ করবে এবং " "পিছনে বোতাম ক্ষেত্রে টাইপ করবে ।

এখানে চিত্র বর্ণনা লিখুন


4
সবচেয়ে খারাপ উপায়, যদি ভিউকন্ট্রোলারের কাছে নেভিগেশনবার না থাকে তবে আমাকে পাঠ্যটি সরাতে যুক্ত করতে হবে
ড্যানিয়েল বেল্ট্রামি

144

আমি জানি এটির ইতিমধ্যে একটি উত্তর রয়েছে তবে আপনি কোডেও এটি করতে পারেন (আপনি যদি নিবসের সাথে কাজ করছেন)

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

প্রথম দেখার নিয়ামকটিতে উপরেরটি যুক্ত করুন।

মনে রাখবেন যে প্রতিটি ভিউ কন্ট্রোলার যা চাপ দিচ্ছে তাদের জন্য আপনাকে এটি করতে হবে। সুতরাং আপনার কাছে যদি 3 টি ভিউ কন্ট্রোলার থাকে এবং আপনি এই সমস্তটি থেকে পিছনের পাঠ্যটি সরাতে চান তবে আপনাকে ভিউ কন্ট্রোলার 1 এবং 2 তে লাইনটি যুক্ত করতে হবে।


4
এটি এখনও অবধি সেরা সমাধানটি আমাকে কোনও ঝামেলা দেয় না
হারানোআটসোশুয়া

4
.Plainপরিবর্তিত হয়েছিল .plain। কোন মূলধন পি।
গাল

পারফেক্ট ..! এটাই সেটা যেটা আমি চাই.
জেডি।

সেরা সমাধান. ধন্যবাদ
বারান এমরে 14

4
@ গ্যাস্টন অ্যান্টোনিও মন্টেস, এটি আইওএস 13-তে কাজ করে তবে এটি কিছুটা স্বজ্ঞাগত: খালি শিরোনামের ব্যাকবার্ট বাটন আইটেমটি পুশিং ভিউ কন্ট্রোলারে ঘোষণা করা উচিত , ধাক্কা দেওয়া এক নয়
মার্টিন

51

অনেকগুলি অনুসন্ধানের পরে আমি সর্বোত্তম এবং সহজ সমাধানটি পেয়েছি, এটি সুইচ ৪.২- তে লিখিত সমস্ত ভিউ কন্ট্রোলারকে প্রভাবিত করবে এবং সুইফট ৫ এও কাজ করবে

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

স্বাগতম @ ই.ডিমিট্রো
আইওএস লাইফ

4
কবজির মতো কাজ করে
জেরি ওকাফোর

4
মনে রাখবেন যে আপনার ভিউকন্ট্রোলারটি কোনও স্টোরিবোর্ড বা নিবতে অন্তর্ভুক্ত থাকলে এটি কাজ করবে ...
নাথানিয়েল ব্লুমার

4
একটি প্রতিভা সমাধান!
WM

4
এটি আমার পক্ষে কাজ করত, তবে আর (এটি এখনও আইওএস 12 সিমুলেটরগুলিতে কাজ করে, কেবলমাত্র সর্বশেষ আইওএস 13 নয়) ...
ট্যানিয়া

37

পিছনের বোতামটির পাঠ্য মাস্টার ভিউয়ের শিরোনামের উপর নির্ভর করে।

কৌশলটি হ'ল শিরোনামটি সাফ করা যদি মাস্টার ভিউটি অদৃশ্য হয়ে যায় এবং যদি আবার প্রদর্শিত হয় তবে এটি সেট করে দিন:

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আপনি <সেটিংসভিউ কনট্রোলারের ভিউ উইলডিস্পায়ার () পদ্ধতিতে ব্যাকবার্ট বাটন আইটেম শিরোনাম সেট করতে পারেন ।

উদ্দেশ্য গ:

- (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)
}

4
.Plainপরিবর্তিত হয়েছিল .plain। কোন মূলধন পি।
গাল

4
অনুসন্ধান নিয়ন্ত্রণকারী আচরণের জন্য উত্তরটি আপডেট করা দরকার। উদাহরণস্বরূপ, আপনি যদি পৃথক রেজাল্টভিসি ব্যবহার করেন এবং এমন কোনও আইটেমটিতে আলতো চাপান যা অন্য ভিসিকে ঠেলে দেয় তবে প্রাথমিক অনুসন্ধানকন্ট্রোলার থেকে ভিউইলডিস্পিয়ার পদ্ধতিটি কল করা হয় না, তাই শিরোনামটি এখনও রয়েছে
8:58 এ H4Hugo

আপনি যদি পুরো অ্যাপ্লিকেশনটিতে পর্দার জন্য কোনও সমাধান খুঁজছেন তবে এটি ভাল পদ্ধতির নয়। - আপনি যদি এই কোডটি কিছু "বেস ভিউ কন্ট্রোলার" এ যুক্ত করেন তবে দ্বিতীয় দেখার নিয়ামকের (যেখানে আপনি সাধারণত শিরোনাম সেট করেন) ভিডড অ্যাপের পরে প্রথম ভিউ কন্ট্রোলারের ভিউইলডিস্পয়ারকে কল করা হবে ... এটি শিরোনামগুলিকে গোলমাল করবে। সেরা উপায় হ'ল ব্যাক ওভাররাইট করা
মিথ্রা সিংগাম

নিখুঁত সমাধান ধন্যবাদ
সুরেশ SANKE

28

আপনি যদি তীরটি ফিরে পেতে চান তবে নিম্নলিখিত কোডটি অ্যাপডেলিগেট ফাইলে ডিডফিনিশলঞ্চিং উইথঅপশন পদ্ধতিতে রেখে দিন।

সুইফ্টের জন্য

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

4
আমি এটি পছন্দ করি কারণ আপনি কোনও একক ফাইলে আপনার অ্যাপ্লিকেশনটির স্টাইলকে মানক করতে পারেন এবং অ্যাপের প্রতিনিধি থেকে একবার কল করতে পারেন
হারোনিয়ামিয়াম 1212

4
এটি সত্যিই দুর্দান্ত এবং দ্রুত সমাধান, তবে ... যদি আপনি
পিছনেরটি

4
একটি পর্যবেক্ষণ, আপনি যদি কেবলমাত্র "। সাধারণ" বৈশিষ্ট্যটি প্রয়োগ করেন, আপনি ক্লিক করে পাঠ্যটি দেখতে পাবেন। ".নির্বাচিত", ".হাইলাইটলাইট", এবং ".অযুক্ত।" এর জন্য একই লাইন যুক্ত করুন। আপনি ঝাঁকুনি লেখাটি দেখতে না পেয়ে তা নিশ্চিত করতে।
নিক এন

4
আমি মনে করি এটির একটি পার্শ্ব প্রতিক্রিয়া হবে, পিছনের বোতামগুলি বাদ দিয়ে অন্য বারের বোতামগুলিও প্রভাবিত হবে এবং স্পষ্ট পাঠ্যের রঙ থাকবে :(
ধীন

24

আমার ক্ষেত্রে, কাস্টম আইকন এবং শিরোনামের জন্য এটি কৌশলটি করেছে (সুইফট 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)

4
এই কোডের শেষ লাইনটি আমার জন্য নির্দ্বিধায় কাজ করেছিল। অন্যান্য সমস্ত পরামর্শ কার্যকর হয়নি, সম্ভবত আমার ভিউ কন্ট্রোলাররা সমস্ত নেভ নিয়ামক দ্বারা নিয়ন্ত্রিত। কোন ক্ষেত্রে, নেভিগেশন নিয়ন্ত্রণকারী? সত্যিই প্রয়োজন হয়।
সালেক্স

আপনি যদি কাস্টম ব্যাক বোতাম যুক্ত করতে চান তবে আপনাকে শীর্ষ চারটি লাইন লাগবে। অন্যথায় শেষ লাইনটি কৌশলটি করবে।
রফিকুল হাসান

14

পূর্ববর্তী ভিউকন্ট্রোলারের স্টোরিবোর্ড শিরোনামে "" যুক্ত করে আমি এই সমস্যার সমাধান করেছি। খালি জায়গা নয়, ডি

এখানে চিত্র বর্ণনা লিখুন


শিরোনাম পেতে আমার পূর্ববর্তী স্ক্রিনটি প্রয়োজন, তাই আমার ধারণা এটি আমার পক্ষে কার্যকর হবে না।
lmiguelvargasf

4
আমি সেই শিরোনামটি ফাঁকা রেখেছি তবে এখনও শিরোনামটি পিছনে বোতাম শিরোনামে আসছে
হিমালি শাহ

4
শিরোনাম, ক্ষেত্রটি ফাঁকা করবেন না, "পিছনে বাটন ফিল্ডে" (স্পেস) রাখুন
কিরিল এস

13

অবশেষে নিখুঁত সমাধান খুঁজে পেয়েছি।

কেবলমাত্র একটি স্বচ্ছ চিত্র যুক্ত করুন এবং আপনার অ্যাপডেলিজেটে নিম্নলিখিত কোড যুক্ত করুন।

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

4
এটি অবশ্যই সেরা উত্তর। আমি এর আগে UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustmentহ্যাকটি ব্যবহার করছিলাম অন্য বেশিরভাগ উত্তরগুলি সুপারিশ করেছিল, তবে দীর্ঘ শিরোনামযুক্ত কন্ট্রোলারদের দেখার জন্য এটি আইফোন এক্স এ ভেঙে দেওয়া হয়েছিল। এই সমাধানটি ত্রুটিহীনভাবে কাজ করে।
নেড

4
সেরা উত্তর. স্বচ্ছ পাঠ্যের রঙের চেয়ে ভাল কাজ করেছে।
উইলিয়াম টি।

4
গত 4 বছরে আমি কী ব্যবহার করেছি সেরা সমাধান! আপনি এটি একবারে করুন, এক জায়গায় এবং সমস্ত দর্শকদের জন্য !!!
korgx9

4
আমি যখন আইওএস 12 দিয়ে চেষ্টা করেছি, তখনও টেক্সটটি চিত্রের পাশে উপস্থিত হয়েছিল। :(
শন ম্যাকমেন্সস

13

দ্রুত 4

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

ধন্যবাদ, এটা আমাকে বের করেছে, (সুইফট 4.0, Xcode 10.1, প্রয়োজন iOS 12.1.1), ধন্যবাদ
infinity_coding7

4
কিন্তু, আপনি প্যারেন্ট ভিসিতে আপনার শিরোনামটি হারাবেন
ওয়েই লু

4
যদি বড় শিরোনাম উপস্থিত থাকে তবে শীর্ষস্থানীয় আইটেম বৃহত শিরোনাম। কাজ করে না
সরঞ্জিথ

11

এটি আমার জন্য কাজ করছে

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

4
একটাকে সঠিক করুন। আইওএস 13-এ, নেভিগেশনআইটেম.ব্যাকবারবটন আইটেম কাজ করে না। এটি আমার প্রচেষ্টার ঘন্টা সাশ্রয় করেছে। ধন্যবাদ
মণীশ

10

জন্য সুইফট 4+ মধ্যে এই লাইন করা AppDelegatedidFinishLaunchingWithOptions

let BarButtonItemAppearance = UIBarButtonItem.appearance()

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

আপনি যখন অ্যাপ্লিকেশন প্রতিনিধিটিতে উপস্থিতিটি সেট করেন তখন পরিষ্কার ইউআরবার্ট বাটন প্রতিটি ইউআইবারবারটন আইটেমের জন্য হয় না, তাই না? সুতরাং আমি যদি কোনও পাঠ্যের সাথে একটি ইউআইবারবারটন আইটেম যুক্ত করি তবে আমাকে কী এই বোতামটির জন্য ম্যানুয়ালি অগ্রভাগের রঙটি পরিবর্তন করতে হবে?
কুদ্দু

4
এটি ভাল তবে আপনি পিছনের বোতামটি টিপলে এটি এখনও টেক্সটটি দেখায়
উইলিয়াম টি।

এটি কাজ করে তবে অন্য বারের বোতামটি আইওএসে অদৃশ্য হয়ে যায় ১১. উপরের রফিকুল হাসানের উত্তর সমস্যার সমাধান করতে পারে
হুইঙ্ক

6

আপনার যদি একটি ভিউকন্ট্রোলারএ থাকে এবং আপনি ভিউকন্ট্রোলারবিতে নেভিগেট করতে চান, ভিউকন্ট্রোলারএতে আপনার নতুন নেভিগেশন আইটেমটি একটি নতুন ইউআইবারবারটন আইটেম এবং শিরোনামটি ফাঁকা স্থান সহ একটি স্ট্রিংতে সেট করা উচিত অন্য ভিউ কন্ট্রোলারের দিকে এগিয়ে যাওয়ার আগে:

শূন্য স্থান দিয়ে একটি স্ট্রিংয়ের শিরোনামটি সেট করুন, আপনি শূন্য বা "" (ফাঁকা স্ট্রিং) সেট করতে পারবেন না কারণ ডিফল্ট মানটি শূন্য থাকে

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

শিরোনামটি "" নির্ধারিত হওয়ার পরেও "পিছনে" পাঠ্যটি পুনরায় প্রদর্শিত হওয়ার সাথে আমি খুব মজার আচরণ পাচ্ছিলাম (এবং যেমনটি পরিদর্শন করা হয়েছিল) ViewControllerB(যদিও এটি আমার নির্দিষ্ট প্রান্তের ক্ষেত্রে এখনও অবধি সর্বদা কাজ করে চলেছিল), এটি ছিল আমার জন্য একমাত্র সমাধান যা কাজ করেছিল
10623169

6

প্রতিটি ভিসিতে এই কোডটি রাখুন যা অন্য একটিতে ধাক্কা দেয়

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

একটি নেভিগেশন নিয়ামক স্ট্যাকের সমস্ত ভিউকন্ট্রোলার থেকে অপসারণ করতে:

সাবক্লাস ইউআইএনএভিগেশন কন্ট্রোলার এবং এটি যুক্ত করুন:

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)

2

বিশদ

  • এক্সকোড সংস্করণ 10.2.1 (10E1001), সুইফট 5

সমাধান

1. ইউআইএনএভিগেশন কন্ট্রোলারের কাস্টম ক্লাস তৈরি করুন

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. ইউআইভিউউকন্ট্রোলার এক্সটেনশন যুক্ত করুন

import UIKit

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

৩. আপনার ভিউকন্ট্রোলার ক্লাস আপডেট করুন

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 }
}

ফলাফল

এখানে চিত্র বর্ণনা লিখুন


2

আপনি একটি প্রতিনিধি পদ্ধতি ব্যবহার করে পিছনে বোতাম থেকে পাঠ্য সরাতে পারেন 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)
    }
    
}

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 এর নেভিগেশন বারটি নির্বাচন করা উচিত যা পিছনে বোতামটি নির্দেশ করবে এবং পিছনে বোতাম ক্ষেত্রে "" টাইপ করবে।

উদাহরণস্বরূপ আপনি যদি বি কন্ট্রোলারে কোনও নিয়ামককে চাপ দিচ্ছেন তবে একটি নিয়ামক নেভিগেশন বারে সাদা স্থান রাখুন put


1

এক্সকোড 10, সুইফ্ট 4+

এখানে অন্যদের অনুরূপ উত্তর কিন্তু এটি লক্ষণীয় যে যদি পাঠ্যটি এখনও সাফ না হয় তবে আপনাকে স্পেসটি ক্লিক করে তারপরে প্রবেশ করতে হবে।

এখানে চিত্র বর্ণনা লিখুন


1

সব ওভাররাইড করতে এক বিকল্প ViewControllersআমার জন্য প্রসারিত ছিল UINavigationControllerএবং সেট backBarButtonItemএর topViewController

Swift 5 এক্সকোড 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-uinavicationbar-back-button/


0

এক্সকোড 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
        }
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.