ios - নেভিগেশন বারের পিছনে বোতামের রঙ পরিবর্তন করুন




swift uinavigationbar (16)

আমি সেটিংস বোতামটির রঙ সাদা করতে চেষ্টা করছি, তবে এটি পরিবর্তন করতে পারছি না।

আমি এই দুটোই চেষ্টা করেছি:

navigationItem.leftBarButtonItem?.tintColor = UIColor.whiteColor()
navigationItem.backBarButtonItem?.tintColor = UIColor.whiteColor()

তবে কোনও পরিবর্তন হয়নি, এটি এখনও এর মতো দেখাচ্ছে:

আমি কীভাবে সেই বোতামটি সাদা করব?


সুইফট 4.2

সম্পূর্ণ অ্যাপ্লিকেশন থিম পরিবর্তন করুন

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        UINavigationBar.appearance().tintColor = .white

        return true
    }

নির্দিষ্ট নিয়ামক পরিবর্তন করুন

let navController = UINavigationController.init(rootViewController: yourViewController) 
navController.navigationBar.tintColor = .red

present(navController, animated: true, completion: nil)

আপনার এই লাইনটি যুক্ত করা উচিত

 self.navigationController?.navigationBar.topItem?.backBarButtonItem?.tintColor = .black

আপনার এটি ব্যবহার করা উচিত:

navigationController?.navigationBar.barTintColor = .purple
navigationController?.navigationBar.tintColor = .white

আপনি এই মত ব্যবহার করতে পারেন। এটি AppDelegate.swift রাখুন।

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        UINavigationBar.appearance().translucent = false
        UINavigationBar.appearance().barTintColor = UIColor(rgba: "#2c8eb5")
        UINavigationBar.appearance().tintColor = UIColor.whiteColor()
        UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]

        return true
    }

আমি গ্লোবাল ইউআই সেট করার চেয়ে কাস্টম নেভিগেশন নিয়ন্ত্রণকারীকে পছন্দ করি বা ভিউকন্ট্রোলার এ রাখি।

এখানে আমার সমাধান


class AppNavigationController : UINavigationController {

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

  override func viewWillAppear(_ animated: Bool) {

  }

}
extension AppNavigationController : UINavigationControllerDelegate {

  func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
    let backButtonItem = UIBarButtonItem(
      title: "   ",
      style: UIBarButtonItem.Style.plain,
      target: nil,
      action: nil)
    backButtonItem.tintColor = UIColor.gray
    viewController.navigationItem.backBarButtonItem = backButtonItem
  }

  func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {

  }

}

এছাড়াও আপনি যদি অ্যাপ্লিকেশন অ্যাপির সাথে ইকেভেন্টিডিটভিউ কনট্রোলার , পিকারভিউ কনট্রোলার এবং অন্যদিকে UIBarButtonItem.appearance().tintColor = .white মতো বিশ্বব্যাপী সেটিংস ব্যবহার করেন তবে অ্যাপ্লিকেশন অ্যাপির সাথে গোলযোগ করার দরকার নেই Apple


এই কোডটি চেষ্টা করে দেখুন:

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.

    let navigationBarAppearace = UINavigationBar.appearance()
    navigationBarAppearace.tintColor = UIColor.whiteColor()  // Back buttons and such
    navigationBarAppearace.barTintColor = UIColor.purpleColor()  // Bar's background color
    navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]  // Title's text color

    self.window?.backgroundColor = UIColor.whiteColor()
    return true
}

এটি এই লাইনের সাথে সমাধান করা হবে - (বাতিল) ভিউডিডলয়েড:

self.navigationItem.backBarButtonItem.tintColor = UIColor.whiteColor;

কেউ কেন এটি উল্লেখ করেননি তা নিশ্চিত নয় ... তবে আপনি আমার viewDidLoad ঠিক কী করছেন তা আমি viewDidLoad ... এবং এটি কাজ করছে না। তারপরে আমি আমার কোডটি viewWillAppear এবং এটি সব কাজ করে।

উপরের সমাধানটি একটি একক বারবুটটন আইটেম পরিবর্তন করা। আপনি যদি নিজের কোডে প্রতিটি নেভিগেশনবারের জন্য রঙ পরিবর্তন করতে চান তবে এই উত্তরটি অনুসরণ করুন।

মূলত appearance() ব্যবহার করে ক্লাসে নিজেকে পরিবর্তন করা আপনার অ্যাপ্লিকেশনটিতে সেই দৃষ্টির সমস্ত দৃষ্টিতে বিশ্বব্যাপী পরিবর্তন আনার মতো like আরও জন্য এখানে দেখুন


দ্রুতগতি

 override func viewDidLoad() {
     super.viewDidLoad()

 self.navigationController?.navigationBar.tintColor = UIColor.white
 }

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

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "YourPaymentInformationSegue"
    {
        //Make the back button for "Payment Information" gray:
        self.navigationItem.backBarButtonItem?.tintColor = UIColor.gray               
    }
}

সুইফট ২.০ এর জন্য, নেভিগেশন-বার টিন্টের রঙ পরিবর্তন করতে, শিরোনাম পাঠ্য এবং পিছনের বোতামের টিন্টের রঙটি অ্যাপডিলেগেট.স্ফিটে নিম্নলিখিতটি ব্যবহার করে পরিবর্তিত হয়েছে

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

  // Override point for customization after application launch.


    //Navigation bar tint color change

    UINavigationBar.appearance().barTintColor = UIColor(red: 42/255.0, green: 140/255.0, blue: 166/255.0, alpha: 0.5)

    //Back button tint color change

    UINavigationBar.appearance().barStyle = UIBarStyle.Default
    UINavigationBar.appearance().tintColor =  UIColor(red: 204/255.0, green: 255/255.0, blue: 204/255.0, alpha: 1)

    //Navigation Menu font tint color change

    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor(red: 204/255.0, green: 255/255.0, blue: 204/255.0, alpha: 1), NSFontAttributeName: UIFont(name: "OpenSans-Bold", size: 25)!]//UIColor(red: 42/255.0, green: 140/255.0, blue: 166/255.0, alpha: 1.0)

    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent


    return true
}

সুইফ্ট 4-এ, আপনি এই সমস্যাটি ব্যবহার করে যত্ন নিতে পারেন:

let navStyles = UINavigationBar.appearance()
// This will set the color of the text for the back buttons.
navStyles.tintColor = .white
// This will set the background color for navBar
navStyles.barTintColor = .black

didFinishLaunchingWithOptions অভ্যন্তরে didFinishLaunchingWithOptions ক্লাসে এই কোডটি ব্যবহার করুন।

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

UINavigationBar.appearance().tintColor = .white

}

AppDelegate.swift এ ডিফিনিশলঞ্চিং উইথঅপশন ফাংশনটিতে নিম্নলিখিত কোড যুক্ত করুন

var navigationBarAppearace = UINavigationBar.appearance()

navigationBarAppearace.tintColor = uicolorFromHex(0xffffff) // White color
navigationBarAppearace.barTintColor = uicolorFromHex(0x034517) // Green shade

// change navigation item title color
navigationBarAppearace.titleTextAttributes =[NSForegroundColorAttributeName:UIColor.whiteColor()]

সুইফট 3-এ , পিছনে বোতামটি red করতে সেট করতে।

self.navigationController?.navigationBar.tintColor = UIColor.red

self.navigationController.navigationBar.tintColor = [UIColor whiteColor];

এটি আমার জন্য iOS 9.0+ কাজ করে







backbarbuttonitem