2010-08-01 11 views
5

मैं निम्नलिखित कोड कोशिश कर रहा हूँ:मैं UIViewController के नेविगेशन नियंत्रक शीर्षक को सही तरीके से कैसे सेट करूं?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
Thing *sub = [[subscriptions objectAtIndex:indexPath.row] retain]; 
StoriesViewController *thing = [[StoriesViewController alloc] initWithThing:sub]; 
thing.navigationController.title = sub.title; 
[self.navigationController pushViewController:thing animated:YES]; 
[thing release]; 
[sub release]; 

[tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

मैं इस बारे में सोचा है कि कैसे आप सही ढंग से नियंत्रक धकेलने के लिए शीर्षक सेट है। मैंने thing.title की कोशिश की हालांकि वह TabBarItem के शीर्षक को इसके बजाय सेट कर रहा था।

+0

अधिक अच्छी तरह से यहाँ पर चर्चा की: http://stackoverflow.com/questions/2280710/iphone-setting-navigation-bar-title –

उत्तर

14
thing.navigationItem.title = sub.title; 

या viewDidLoad विधि में StoriesViewController.m फ़ाइल में:

self.navigationItem.title = sub.title 
+0

thing.navigationItem.title काम नहीं करता, मैं पहले और बाद में मैं धक्का इसे करने की कोशिश भाग्य के बिना ViewController। –

+0

इसे अपने contoroller – jamapag

+2

हाय के didLoad विधि में सेट करें हाय, मैंने self.navigationController.title = @ "पंजीकरण" की कोशिश की; क्या अंतर है? यह xcode 9 में – OMGPOP

1

शीर्षक, में (या बाद) viewDidLoad निर्धारित करने की आवश्यकता इसलिए यदि आप किसी अन्य वर्ग कि StoriesViewController पैदा कर रही है से सेट करना चाहते हैं ।

  1. कोई अन्य संपत्ति बनाएं और उस वर्ग को सेट करें।
  2. कहानियों में व्यू कंट्रोलर का viewDidLoad, उस संपत्ति से शीर्षक सेट करें।

ऐसा इसलिए है क्योंकि आउटलेट viewDidLoad तक उनके दृश्य समकक्षों में प्रारंभ नहीं किए गए हैं।

ऐसा लगता है कि कहानियां व्यू कंट्रोलर उप पर है (क्या initWithThing इसे एक संपत्ति सेट करता है?) यदि ऐसा है, तो शीर्षक को शीर्षक में शीर्षक के शीर्षक में शीर्षक सेट करें।

+0

का स्पष्ट उपयोग काम नहीं करता है, हालांकि आपका तर्क समझ में आता है। –

0

समाधान था thing.navigationItem.title = @"title"; लेकिन यह पता चला है कि उपवर्गीकरण एक UINavigationController यह किसी भी तरह तोड़ दिया और

0

एक उपवर्ग के बजाय एक वर्ग का उपयोग करने के यदि आपका UIViewController एक UITabController का हिस्सा है था कि करने के लिए अपने समाधान है, तो आप कर सकते हैं:

self.tabBarController.title = sub.title; 
1

यह आप अपने नियमित दृश्य नियंत्रक के बजाय एक UITabBarController धक्का कर रहे हैं संभव है। इस मामले में, नेविगेशन इटिम वर्तमान नियंत्रक का शीर्षक प्रदर्शित करेगा, टैब बार नियंत्रक, भले ही आप एक और दृश्य देखें। ऊपर प्रदर्शित पाठ को बदलने के लिए आपको टैब बार नियंत्रक का शीर्षक बदलना होगा।

self.tabBarController.title = @"Your title"; 
संबंधित मुद्दे