UINavigationBar.appearance().tintColorएप्पल के प्रलेखन के साथ संघर्ष स्थापित करने वाले सभी उत्तर UIAppearance.h।
IOS7 के लिए नोट: iOS7 पर tintColorसंपत्ति को स्थानांतरित कर दिया गया है UIView, और अब इसमें वर्णित विशेष विरासत वाला व्यवहार है UIView.h। यह अंतर्निहित व्यवहार उपस्थिति प्रॉक्सी के साथ संघर्ष कर सकता है, और इसलिए tintColorअब उपस्थिति प्रॉक्सी के साथ अस्वीकृत है।
Xcode में, आपको उस प्रत्येक प्रॉपर्टी पर कमांड-क्लिक करना होगा, जिसे आप हेडर फाइल का निरीक्षण करने के लिए उपस्थिति प्रॉक्सी के साथ उपयोग करना चाहते हैं और सुनिश्चित करें कि प्रॉपर्टी के साथ एनोटेट किया गया है UI_APPEARANCE_SELECTOR ।
तो नेविगेशन बार जामुनी और शीर्षक और बटन को सफेद करने का सही तरीका है, एप्लिकेशन के माध्यम से उपस्थिति प्रॉक्सी के माध्यम से सफ़ेद होना:
UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().barTintColor = .purple
UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
UIBarButtonItem.appearance().tintColor = .white
ध्यान दें कि UIBarButtonItemएक उपवर्ग नहीं है UIView, बल्कि NSObject। इसलिए इसकी tintColorसंपत्ति विरासत में नहीं मिली tintColorहैUIView ।
दुर्भाग्य से, UIBarButtonItem.tintColorइसके साथ एनोटेट नहीं है UI_APPEARANCE_SELECTOR- लेकिन यह मुझे एक दस्तावेज बग लगता है। इस रडार में Apple इंजीनियरिंग की प्रतिक्रिया का समर्थन किया गया है।