UINavigationBar.appearance().tintColorঅ্যাপলের ডকুমেন্টেশনের সাথে বিরোধিতা নির্ধারণ করে সমস্ত উত্তর UIAppearance.h।
আইওএস 7-এর জন্য নোট: আইওএস 7-এ tintColorসম্পত্তিটি সরানো হয়েছে UIView, এবং এখন এতে বর্ণিত বিশেষ উত্তরাধিকারসূত্রে আচরণ রয়েছে UIView.h। উত্তরাধিকার সূত্রে প্রাপ্ত এই আচরণটি উপস্থিতি প্রক্সিটির সাথে দ্বন্দ্ব দেখাতে পারে এবং তাই tintColorএখন উপস্থিতি প্রক্সি দিয়ে বঞ্চিত করা হয়েছে।
এক্সকোডে, আপনাকে শিরোনামের ফাইলটি পরীক্ষা করতে এবং সম্পত্তিটি টিকিয়ে দেওয়া হয়েছে কিনা তা নিশ্চিত করার জন্য আপনি যে উপস্থিতিটি উপস্থিতি প্রক্সি সহ ব্যবহার করতে চান তার প্রতিটি কমান্ড-ক্লিক করতে হবে UI_APPEARANCE_SELECTOR।
তাই উপস্থিতি প্রক্সিটির মাধ্যমে নেভিগেশন বারকে বেগুনি এবং শিরোনাম এবং বোতামগুলিকে সাদা করার জন্য সঠিক উপায়টি অ্যাপ্লিকেশনটিতে রয়েছে:
UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().barTintColor = .purple
UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
UIBarButtonItem.appearance().tintColor = .white
নোট যে UIBarButtonItemএটি UIViewবরং একটি subclass নয় NSObject। সুতরাং তার tintColorসম্পত্তি উত্তরাধিকার হিসেবে প্রাপ্ত না হয় tintColorথেকে UIView।
দুর্ভাগ্যক্রমে, UIBarButtonItem.tintColorএটিকে টীকায়িত করা হয় না UI_APPEARANCE_SELECTOR- তবে এটি আমার কাছে একটি ডকুমেন্টেশন বাগ বলে মনে হয়। অ্যাপলের প্রকৌশল প্রতিক্রিয়াতে এই রাডার এটা সমর্থিত পদ বলে।