iPhone: नेविगेशन बार शीर्षक सेट करना


86

सभी को प्रणाम। मैं अभी भी iPhone विकास के लिए बहुत नया हूं, और मुझे यह जानने में थोड़ी परेशानी हो रही है कि अपने नेविगेशन बार के शीर्षक को कैसे बदला जाए। इस साइट पर एक और सवाल पर किसी ने उपयोग करने की सिफारिश की:

viewController.title = @"title text";

लेकिन यह मेरे लिए काम नहीं कर रहा है ... क्या मुझे इसे पूरा करने के लिए एक UINavigationController जोड़ने की आवश्यकता है? या शायद मेरे UIViewController उपवर्ग से सिर्फ एक आउटलेट? यदि यह मदद करता है, तो मैंने आईबी में नेविगेशन बार को परिभाषित किया है और मैं अपने UIViewController उपवर्ग में इसका शीर्षक स्थापित करने की कोशिश कर रहा हूं। यह उन सरल चीजों में से एक है जो मुझे सिरदर्द देता है। सेल्फी लेना। शीर्षक = @ "शीर्षक पाठ"; में viewDidLoadऔर initWithNibNameया तो काम नहीं किया। किसी को भी पता है कि क्या हो रहा है और यह सही कैसे हो रहा है?

धन्यवाद!

जवाबों:


154

.titleसंपत्ति को प्रभावी करने के लिए व्यू कंट्रोलर को कुछ UINavigationController का बच्चा होना चाहिए । यदि UINavigationBar केवल एक दृश्य है, तो आपको शीर्षक वाले नेविगेशन आइटम को पुश करने की आवश्यकता है, या अंतिम नेविगेशन आइटम को संशोधित करना है:

UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"];
...
[bar pushNavigationItem:item animated:YES];
[item release];

या

bar.topItem.title = @"title text";

8
वाह। मैंने गंभीरता से मंचों और दस्तावेज़ीकरण के माध्यम से अंतिम घंटे को ब्राउज़ करने की कोशिश की है और यह पता लगाने की कोशिश कर रहा हूं, और मैंने खुद को आश्वस्त किया कि यह इससे अधिक जटिल होगा। यह कोड इतना सरल है और मुझे आईबी में कुछ भी फिर से नहीं करना है। उत्तम! केनीटीएम, आप रॉक। अगर मुझे याद है, तो आपने मेरे NSDate प्रश्न का उत्तर दिया और मुझे शब्दकोशों पर शोध करने के लिए सेट किया। आप इस साइट पर मेरे नए पसंदीदा व्यक्ति हैं। आपकी सभी सहायता के लिए बहुत - बहुत धन्यवाद!
आर्थर स्किरविन

5
आपकी टिप्पणी ने मुझे मुस्कुराया और आश्चर्यचकित किया: क्या किसी ने कभी एसओ में, कभी यहाँ दोस्त बनाए? आमतौर पर यहां हर कोई बहुत मददगार है, लेकिन किसी भी मानवीय भावनाओं को व्यक्त करने के लिए प्रतीत नहीं होता है (पाठ्यक्रम के
प्रश्नकर्ता

स्टोरीबोर्ड-संगत समाधान के लिए सोरिन का उत्तर देखें।
devios1

आपके उत्तर के लिए धन्यवाद जो वास्तव में मुझे बहुत समय बचाता है। :) @kennytm
jerry_sjtu

123

यदि आप यह सब viewDidLoadविधि में कोड द्वारा कर रहे हैं तो आपको UIViewControllerकेवल जोड़ना चाहिएself.title = @"title text";

कुछ इस तरह:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.title = @"title";
}

आप भी कोशिश कर सकते हैं self.navigationItem.title = @"title";

यह भी देखें कि क्या आपका नेविगेशन इटेम शून्य नहीं है और यदि आपने नेविगेशनबार चेक में कोई कस्टम बैकग्राउंड सेट किया है, तो शीर्षक इसके बिना सेट है या नहीं।


@ सोरीना, धन्यवाद। यह नेविगेशन बार का शीर्षक देने का बेहतर तरीका है।
तीर्थ

33

उपयोग करने के साथ एक समस्या है self.title = @"title";

यदि आप टैब बार के साथ नेविगेशन बार का उपयोग कर रहे हैं, तो उपरोक्त लाइन भी टैब बार आइटम के लिए लेबल को बदल देती है। इससे बचने के लिए, @testing का उपयोग करने का सुझाव दिया

self.navigationItem.title = @"MyTitle";


9

यदि आप एक tabBar नियंत्रक के अंदर एक navbar का शीर्षक बदलना चाहते हैं, तो यह करें:

-(void)viewDidAppear:(BOOL)animated {
    self.navigationController.navigationBar.topItem.title = @"myTitle";
}

viewDidAppear ने इस काम को करने की कोशिश करने के 2 घंटे बाद मेरे लिए यह चाल चली। धन्यवाद :)
Tchelow

topItem.title नेविगेशन बार शीर्षक हो सकता है या नहीं भी हो सकता है। यदि यह बिना बैक बटन के शीर्ष स्तर की स्क्रीन है, तो यह शीर्षक सेट करेगा। लेकिन अगर आपके पास एक बैक बटन है, तो topItem.title वास्तव में बैक बटन शीर्षक है।
user2962499

5

अपने नेविगेशन आधारित ऐप में मैं यह करता हूं:

myViewController.navigationItem.title = @"MyTitle";

4

मैं एक TabbarController में एकीकृत नेविगेशन नियंत्रकों था। यह काम किया

self.navigationItem.title=@"title";

4

डिफ़ॉल्ट रूप से नेविगेशन कंट्रोलर 'topitem' का शीर्षक प्रदर्शित करता है

तो अपने appdelegate के अपने viewdidload विधि में आप कर सकते हैं। मैंने इसका परीक्षण किया और यह काम करता है

navController.navigationBar.topItem.title = @"Test";

2
UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"];
...
[bar pushNavigationItem:item animated:YES];
[item release];

इस कोड ने काम किया।


एसओ का स्वागत है और पोस्ट के लिए धन्यवाद। इस जानकारी को एक टिप्पणी के रूप में पोस्ट करना बेहतर होगा, कृपया अधिक जानकारी के लिए कैसे जवाब दें पर एक नज़र डालें ।
सर्ज बेलोव

2

यदि आप स्टोरीबोर्ड के साथ काम कर रहे हैं, तो आप नियंत्रक पर क्लिक कर सकते हैं, गुण टैब पर जा सकते हैं, और शीर्षक पाठ सेट कर सकते हैं।


1

मुझे लगता है कि आपको एक गतिशील शीर्षक की आवश्यकता है यही कारण है कि आप इसे आईबी में सेट नहीं करते हैं।

और मैं मानता हूं कि आपका दृश्य नियंत्रक वस्तु एनआईबी में निर्दिष्ट है?

शायद यह आईबी में एक डमी मूल्य पर स्थापित करने की कोशिश कर रहा है और फिर उन विधियों को देखने के लिए कि किस नियंत्रक का डमी मूल्य है - यह मानकर कि यह शीर्षक के रूप में प्रकट होता है ...


1

अपने TableViewController.m के भीतर से:

self.navigationController.navigationBar.topItem.title = @ "ब्ला ब्ला ब्ला कुछ अद्भुत शीर्षक";


1

आपके सभी स्विफ्ट-उर्स के लिए, यह मेरे लिए पूरी तरह से काम करता है। यह शीर्षक स्थापित करने के छोटे तरीकों में से एक है, साथ ही:

override public func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
  if segue.identifier == "presentLineItem" {
    print("Setting Title")
    var vc = segue.destinationViewController as! LineItemsTableViewController
    vc.navigationItem.title = "Line Item"
  }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.