प्रोग्रामिक रूप से नेविगेशन बार का शीर्षक कैसे सेट करें?


84

मेरे पास एक दृश्य में एक नेविगेशन बार है, और मैं इसके नेविगेशन आइटम शीर्षक को प्रोग्रामेटिक रूप से बदलना चाहता हूं।

यह कैसे किया जाता है?

जवाबों:


204

आपके UIViewController में

self.navigationItem.title = @"The title";

हां, मैं इसे चुनूंगा क्योंकि यह केवल नेविगेशन इटेम के शीर्षक को अपडेट करता है न कि टूलबार इटेम के शीर्षक को।
प्रकाश रमन

30

स्विफ्ट 3 संस्करण:

यदि आप नेविगेशन नियंत्रक के बिना नेविगेशन बार का उपयोग करते हैं, तो आप यह कोशिश कर सकते हैं:

navigationBar.topItem?.title = "Your Title"

मदद की उम्मीद है।


11

ViewDidLoad में

  self.title = @"Title";

3
मेरे दो सेंट :) यह काम करता है, हालांकि अगर vewcontroller एक टूलबार कॉन्ट्रैक्टर का हिस्सा है। फिर टूलबारिटम का शीर्षक भी अपडेट किया जाता है।
प्रकाश रमन

7

से एप्पल प्रलेखन :

नेविगेशन बार का उपयोग करने का सबसे सामान्य तरीका नेविगेशन नियंत्रक के साथ है। आप अपने ऐप में एक स्टैंडअलोन ऑब्जेक्ट के रूप में एक नेविगेशन बार का उपयोग कर सकते हैं।

इसलिए यदि आपके पास एक UINavigationController है, तो नेविगेशन बार का शीर्षक सेट करने के लिए आपको क्या करना है (जैसा कि पिछले सभी उत्तरों में बताया गया है)

self.navigationItem.title = @"title";

लेकिन यदि आपके पास एक स्टैंडअलोन नेविगेशन बार है, जो कि UIViewController के ऑब्जेक्ट के भीतर प्रोग्रामेटिक रूप से बनाया गया है, तो आपको उपयुक्त UINavigationItem ऑब्जेक्ट्स बनाकर और उन्हें नेविगेशन बार स्टैक में जोड़कर नेविगेशन बार का प्रारंभिक स्वरूप सेट करना होगा।

  1. नेविगेशन बार का एक उदाहरण बनाएं (UINavigationBar)
  2. नेविगेशन बार आइटम (UINavigationItem) का एक उदाहरण बनाएं जो UINavigationBar ऑब्जेक्ट में प्रदर्शित होने वाले बटन और विचारों का प्रबंधन करता है। ध्यान दें कि आपने इस चरण पर शीर्षक सेट किया है।
  3. (वैकल्पिक चरण) नेविगेशन बार आइटम पर दाएं / बाएं बटन (UIBarButtonItem के उदाहरण) जोड़ें।

उल्लिखित चरणों के लिए उद्देश्य-सी कोड का नमूना:

UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];

/* Create navigation item object & set the title of navigation bar. */
UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:self.shoppingItem.name];

/* Create left button item. */
UIBarButtonItem* cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onTapCancel:)];
navItem.leftBarButtonItem = cancelBtn;

/* Create left button item. */
UIBarButtonItem* doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(onTapDone:)];
navItem.rightBarButtonItem = doneBtn;

/* Assign the navigation item to the navigation bar.*/
[navbar setItems:@[navItem]];

/* add navigation bar to the root view.*/
[self.view addSubview:navbar];

स्वसंपूर्ण नेविगेशन बार के स्विफ्ट संस्करण के लिए, इस उत्तर को देखें


6

नीचे दिए गए कोड को लिखें viewDidLoadया बेहतर हो सकता हैinitWithNibName:

  self.navigationItem.title = @"title";

धन्यवाद।



2

इस कोड ने मेरे लिए काम नहीं किया

self.navigationItem.title = @"Title here";

लेकिन यह काम कर गया।

self.title = "Title Name"

2

आपके UIViewController के व्यूडीडलॉड में

self.navigationItem.title = "The title";  //In swift 4

या

आप बस कर सकते हैं

self.title = "The title"

चाल चलेगा

आप विश्व स्तर पर दोहराने के लिए उपरोक्त प्रतिनिधि को ऐप प्रतिनिधि में भी रख सकते हैं।


0

ViewDidLoad विधि में इसका उपयोग करें

प्रारूप:

@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.

उदाहरण :

self.navigationItem.title = @"Title here";

0

बहुत महत्वपूर्ण नोट: सुनिश्चित करें कि आप उन बदलावों को करते हैं, जो माता-पिता के दृष्टिकोण में उल्लिखित हैं, नियंत्रक का दृष्टिकोण विधि, या स्टोरीबोर्ड में माता-पिता का नेविगेशन


0

कभी-कभी आपको ऐसा मामला मिल सकता है जहां आप शीर्षक अपडेट कर रहे हैं और इसका कोई प्रभाव नहीं हो रहा है, यह तब हो सकता है जब आपके पास एक कस्टम दृश्य topItemहो इसलिए आप इसे इस तरह अपडेट करना चाह सकते हैं:(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.