कल्पना करें कि हम Apple के डिफ़ॉल्ट मास्टर / डिटेल प्रोजेक्ट टेम्पलेट का उपयोग कर रहे हैं, जहां मास्टर एक टेबल व्यू कंट्रोलर है और इस पर टैप करने से डिटेल व्यू कंट्रोलर दिखाई देगा।
हम बैक बटन को कस्टमाइज़ करना चाहते हैं जो डिटेल व्यू कंट्रोलर में दिखाई देता है। यह इमेज , इमेज कलर , टेक्स्ट , टेक्स्ट कलर और बैक बटन के फॉन्ट को कस्टमाइज़ करने का तरीका है ।
विश्व स्तर पर छवि, छवि का रंग, पाठ का रंग, या फ़ॉन्ट बदलने के लिए, निम्नलिखित को उस स्थान पर रखें, जिसे आपके किसी भी दृश्य नियंत्रकों के निर्माण से पहले कहा जाता है (जैसे application:didFinishLaunchingWithOptions:
कि एक अच्छी जगह है)।
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UINavigationBar* navigationBarAppearance = [UINavigationBar appearance];
navigationBarAppearance.backIndicatorImage = [UIImage imageNamed:@"back"];
navigationBarAppearance.backIndicatorTransitionMaskImage = [UIImage imageNamed:@"back"];
navigationBarAppearance.backIndicatorImage = [[UIImage imageNamed:@"back"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
navigationBarAppearance.backIndicatorTransitionMaskImage = [UIImage imageNamed:@"back"];
navigationBarAppearance.tintColor = [UIColor greenColor];
NSDictionary *barButtonTitleTextAttributes =
@{
NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-Light" size:12.0],
NSForegroundColorAttributeName: [UIColor purpleColor]
};
[[UIBarButtonItem appearance] setTitleTextAttributes:barButtonTitleTextAttributes forState:UIControlStateNormal];
return YES;
}
ध्यान दें, आप appearanceWhenContainedIn:
अधिक नियंत्रण का उपयोग कर सकते हैं कि इन परिवर्तनों से कौन से कंट्रोलर प्रभावित होते हैं, लेकिन ध्यान रखें कि आप पास नहीं हो सकते [DetailViewController class]
, क्योंकि यह एक UINavigationController के अंदर निहित है, न कि आपका विवरण। इसका मतलब है कि यदि आपको प्रभावित होने पर अधिक नियंत्रण चाहिए तो आपको UINavigationController को उप-वर्ग करना होगा।
किसी विशिष्ट बैक बटन आइटम के टेक्स्ट या फ़ॉन्ट / रंग को अनुकूलित करने के लिए, आपको MasterViewController ( डिटेलव्यूकंट्रोलर नहीं!) में ऐसा करना होगा । यह अचूक लगता है क्योंकि बटन डिटेलव्यूकंट्रोलर पर दिखाई देता है। हालाँकि एक बार जब आप समझ जाते हैं कि नेविगेशनटेम पर एक संपत्ति सेट करके इसे अनुकूलित करने का तरीका है, तो यह अधिक समझ में आने लगता है।
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithTitle:@"Testing"
style:UIBarButtonItemStylePlain
target:nil
action:nil];
NSDictionary *barButtonTitleTextAttributes =
@{
NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-Light" size:12.0],
NSForegroundColorAttributeName: [UIColor purpleColor]
};
[buttonItem setTitleTextAttributes:barButtonTitleTextAttributes forState:UIControlStateNormal];
self.navigationItem.backBarButtonItem = buttonItem;
}
नोट: शीर्षक को सेट करने का प्रयास करने के लिए स्वयं को सेट करने के बाद TAttributes.navigationItem.backBarButtonItem काम नहीं करता है, इसलिए उन्हें इस संपत्ति के मूल्य को निर्दिष्ट करने से पहले सेट किया जाना चाहिए।