में एक व्यू कंट्रोलर के नेविगेशन आइटम के बैकबैरबटन इटिम को कॉन्फ़िगर करना इंटरफ़ेस बिल्डर में स्टोरीबोर्ड में व्यू कंट्रोलर के नेविगेशन बार पर बार बटन आइटम ड्रैग और ड्रॉप करना काफी आसान है। इस तरह, आप व्यू कंट्रोलर के नेविगेशन आइटम के leftBarButtonItem
और rightBarButtonItem
आउटलेट सेट कर सकते हैं। लेकिन backBarButtonItem
आउटलेट भी है, और यह बिल्कुल स्पष्ट नहीं है कि इसे कैसे सेट किया जाए। मैं इंटरफेस बिल्डर का उपयोग कर एक कस्टम बैक बार बटन आइटम कैसे सेट कर सकता हूं?स्टोरीबोर्ड
उत्तर
दृश्य नियंत्रक जिसका नेविगेशन आइटम आप बदलना चाहते हैं का चयन करें। व्यू कंट्रोलर की पहचान प्रदर्शित करने वाली ब्लैक बार इसकी संदर्भित वस्तुओं की एक प्रतिष्ठित ट्रे में बदल जाती है।
ऑब्जेक्ट लाइब्रेरी से ट्रे पर एक बार बटन आइटम खींचें और छोड़ें।
- बाएं हाथ की ओर पर मुख्य उद्देश्य ट्रे में दृश्य नियंत्रक के नेविगेशन आइटम पर राइट क्लिक करें। नेविगेशन आइटम के
backBarButtonItem
आउटलेट के रूप में नए जोड़े गए बटन को वायर करें।
- बार बटन का चयन करें और किसी भी तरह से आप गुण निरीक्षक के साथ चयन में यह कॉन्फ़िगर करें।
इंटरफ़ेस बिल्डर में, आप नेविगेशन आइटम बैक बटन के शीर्षक को बदल सकते हैं।
प्रोग्रामेटिक रूप से, आप अपने व्यू कंट्रोलर के दृश्यडिडलोड विधि में एक कस्टम बैक बटन सेट कर सकते हैं। इस उदाहरण में हम "customImage.png" नाम एक छवि के लिए बटन की छवि को सेट करें:
- (void)viewDidLoad
{
[super viewDidLoad];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Custom" style:UIBarButtonItemStyleBordered target:self action:nil];
// Set custom image here
backButton.image = [UIImage imageNamed:@"customImage.png"];
self.navigationItem.backBarButtonItem = backButton;
}
@wcochran ऊपर बताया गया है, जब viewControllers के साथ काम करने के लिए एक navigationController के ढेर पर धक्का दे दिया, backBarButtonItem आउटलेट पहले से ही तार है और बदला नहीं जा सकता है। इसके अलावा, बच्चे वीसी के नेविगेशन इटैम का चयन करना और आईबी में बैक बटन टेक्स्ट को बदलना, जो आप उम्मीद करेंगे वह नहीं करता है।
अब आप सोच सकते हैं कि बच्चे वीसी के बैकबर्टन इटैम को बदलना समस्या को हल करेगा, लेकिन ऐसा नहीं है। (!) भी संदेहास्पद आप एक बच्चे कुलपति के वापस बटन का शीर्षक सेट करना चाहते हैं, तो आप ऐसा तरह, अपने माता-पिता के पीछे बटन शीर्षक सेट करने के लिए:
- (void)viewWillAppear:(BOOL)animated // in the parent VC!
{
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
}
यह काम नहीं चलेगा माता-पिता वीसी पर कुछ भी। असल में, यदि अभिभावक नेविगेशन नियंत्रक के रूट व्यू कंट्रोलर है, तो बैक बटन बिल्कुल नहीं होगा। लेकिन बच्चा आपके द्वारा बनाए गए बैक बटन को प्राप्त करेगा (या उठाएगा)।
यह केवल तत्काल बच्चे वीसी पर लागू होता है, इसलिए यदि आप नेविगेशन नियंत्रक के ढेर के माध्यम से लेबल को बनाए रखना चाहते हैं तो आपको इसे प्रत्येक माता-पिता पर सेट करने की आवश्यकता है।
मुझे यह समझाने के लिए # विहिनेव में @ विलीज़ के लिए धन्यवाद।
मैं लंबे समय से आईओएस विकास के लिए वापस आ रहा हूं और सभी प्रगति के बावजूद हमें इस तरह के हैक करने की जरूरत है। आईओएस 3.1.2 से चीजें ज्यादा नहीं बदली हैं। इस उत्तर के लिए धन्यवाद। –
जैसा कि @AdamBlock ऊपर बताया गया है, आपको मूल VC में चीजों को सही सेट करना होगा।
वह दिखाता है कि इस प्रोग्रामेटिक तरीके से कैसे करें। इंटरफ़ेस बिल्डर में ऐसा करना भी संभव है।
- माता पिता कुलपति
- का चयन करें नेविगेशन आइटम
- ओपन गुण निरीक्षक
- बैक बटन के लिए शीर्षक सेट का चयन करें।
- 1. स्टोरीबोर्ड
- 2. स्टोरीबोर्ड
- 3. स्टोरीबोर्ड
- 4. स्टोरीबोर्ड
- 5. स्टोरीबोर्ड
- 6. स्टोरीबोर्ड
- 7. स्टोरीबोर्ड
- 8. स्टोरीबोर्ड
- 9. स्टोरीबोर्ड
- 10. स्टोरीबोर्ड
- 11. स्टोरीबोर्ड
- 12. स्टोरीबोर्ड
- 13. स्टोरीबोर्ड
- 14. "स्टोरीबोर्ड
- 15. स्टोरीबोर्ड
- 16. स्टोरीबोर्ड
- 17. स्टोरीबोर्ड
- 18. स्टोरीबोर्ड
- 19. स्टोरीबोर्ड .etTarget बनाम स्टोरीबोर्ड .etTargetName
- 20. स्टोरीबोर्ड सेग्यू
- 21. क्रैश स्टोरीबोर्ड
- 22. स्टोरीबोर्ड - UITabBarController
- 23. एक स्टोरीबोर्ड
- 24. एक्सकोड स्टोरीबोर्ड
- 25. आईपैड (स्टोरीबोर्ड)
- 26. एक्सकोड स्टोरीबोर्ड
- 27. UIWindow स्टोरीबोर्ड
- 28. स्टोरीबोर्ड-आईबी
- 29. iOS5 - स्टोरीबोर्ड
- 30. यूआईटीएबीबार - स्टोरीबोर्ड
मेरे नेविगेशन आइटम में पहले से ही 'बैकबर्टबटन इटिम' वायर्ड है (चूंकि यह पुश सेग का गंतव्य है) और यह अपरिवर्तनीय है। वास्तव में बैक बटन के शीर्षक को बदलने का कोई तरीका नहीं है - विशेषता निरीक्षक में "बैक बटन" फ़ील्ड सेट करने का कोई प्रभाव नहीं पड़ता है। – wcochran
यदि आप समाधान चाहते हैं तो मैं आपको इसके लिए एक अलग प्रश्न बनाने के लिए प्रोत्साहित करता हूं और आपको इस प्रोग्राम को व्यावहारिक रूप से अपमानजनक बनाने का विचार मिलता है। दुर्भाग्य से, तुम्हारी एक ऐसी स्थिति है जिसे मैंने अभी तक नहीं सामना किया है। – warrenm
@wcochran - यह मेरे साथ भी हुआ। यह एक्सकोड में एक छोटी निगरानी है, वर्कअराउंड ऑब्जेक्ट लाइब्रेरी में UIBarButtonItem चुनना है, फिर इसे UINavigationItem के बाएं बार बटन आइटम पर खींचें। आपको एक नीला आयत दिखाई देगा, फिर यह इसे सेट करेगा और आप इसे सामान्य रूप से कॉन्फ़िगर कर सकते हैं। –