11

में दिखाई नहीं देता है मुझे नेविगेशन बार के दाएंबर्टन इटैम को प्रदर्शित करने में समस्याएं आ रही हैं - मैं इसे एप्लिकेशन प्रतिनिधि में प्रोग्रामेटिक रूप से बनाने का प्रयास कर रहा हूं, जहां मेरा UINavigationController स्थापित है।rightBarButtonItem नेविगेशन बार आईओएस

कोड इस प्रकार है:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

// Override point for customization after application launch. 
RSCListViewController *list = [[RSCListViewController alloc] initWithStyle:UITableViewStylePlain]; 
self.navController = [[UINavigationController alloc] initWithRootViewController:list]; 

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithTitle:@"+" 
                   style:UIBarButtonItemStylePlain 
                  target:list 
                  action:@selector(addPressed:)]; 

self.navController.navigationItem.rightBarButtonItem = barButton; 

self.window.backgroundColor = [UIColor whiteColor]; 
[self.window makeKeyAndVisible]; 

[DatabaseManager openDatabase]; 

return YES; 
} 

आवेदन चल रहा, कोई बटन आइटम नेविगेशन पट्टी पर दिखाई देता है।

मुझे यकीन नहीं है कि मैंने कुछ स्पष्ट याद किया है - संबंधित स्टैक ओवरफ्लो थ्रेड का उपयोग करके समस्या को सुधारने के मेरे प्रयासों ने कोई सफलता नहीं दी है।

किसी भी मदद की सराहना की।

+0

सब कुछ किसी और ठीक से दिखाई देते? – Kyle

उत्तर

29

आपको नेविगेशन नियंत्रक के लिए नहीं, अपने कस्टम व्यू कंट्रोलर पर अपना बार बटन आइटम संलग्न करने की आवश्यकता है। Updating the Navigation Bar से:

इसके अलावा, नेविगेशन नियंत्रक वस्तु नेविगेशन पट्टी गतिशील नेविगेशन आइटम (उदाहरणों UINavigationItem वर्ग के ) नेविगेशन ढेर पर दृश्य नियंत्रकों के साथ जुड़े का उपयोग कर की सामग्री बनाता है। नेविगेशन बार की सामग्री को बदलने के लिए, इसलिए आपको अपने कस्टम व्यू नियंत्रकों के लिए नेविगेशन आइटम कॉन्फ़िगर करना होगा।

  • नए उच्च स्तर का परिदृश्य नियंत्रक एक कस्टम सही बार बटन आइटम हों तो:

    (...)

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

  • यदि कोई कस्टम दायां बार बटन आइटम निर्दिष्ट नहीं है, तो नेविगेशन बार बार के दाईं ओर कुछ भी प्रदर्शित नहीं करता है।

इसलिए, बदल देते हैं:

साथ
self.navController.navigationItem.rightBarButtonItem = barButton; 

:

list.navigationItem.rightBarButtonItem = barButton; 
+0

धन्यवाद - यह माना गया था कि नेविगेशन बार पर प्रदर्शित तत्व स्टैक के शीर्ष पर दृश्य के बजाय नेविगेशन नियंत्रक से बंधे थे ... लेकिन अब मैं इसके बारे में सोचता हूं, यह नेविगेशन बार के रूप में ज्यादा समझ नहीं पाएगा कौन सा दृश्य प्रदर्शित किया जा रहा है जिसके परिणामस्वरूप अक्सर बदल जाएगा। मदद के लिए एक बार फिर से धन्यवाद। – Russell

+0

आपका स्वागत है :) – albertamg

+0

कुछ कारणों से जो काम नहीं करता है जब वीवीसी नेविगेशन Item आप सही सेट करते हैं BarButtonItem rootViewController है :-(लेकिन, जैसा कि आपने कहा था, यह जब भी @ navigationItem.rightBarButtonItem = जो भी हो, के साथ vc ठीक काम करता है; "है हालांकि नौसेना ढेर पर धक्का दिया। –