12

मैं क्षमा चाहता हूं कि मैं आईफोन प्रोग्रामिंग में नया हूं।नेविगेशन आइटम व्यू कंट्रोलर पर दिखाई नहीं दे रहा है

मैंने एक मास्टर-विस्तार आईफोन एप्लिकेशन बनाया है (इसलिए नेविगेशन नियंत्रक परियोजना के साथ आया था)। मैं मास्टरव्यू कंट्रोलर पर UIBarButtonItem के माध्यम से बनाए गए एक नए दृश्य नियंत्रक के लिए segue। हालांकि Detailviewcontroller (जो प्रोजेक्ट के साथ आया था) के विपरीत मुझे दृश्य पर प्रदर्शित करने के लिए नेविगेशन (या नेविगेशनबार) नहीं मिल रहा है, भले ही यह मेरी स्टोरीबोर्ड की दृश्य सूची में दिखाई दे।

Heres कुछ कोड और एक स्क्रीनशॉट:

मेरी masterviewcontroller.m viewDidLoad में मेरी masterviewcontroller.m में() फ़ंक्शन

UIBarButtonItem *settingsButton = [[UIBarButtonItem alloc] initWithTitle:@"Settings" style:normal target:self action:@selector(goToSettings:)]; 
self.navigationItem.leftBarButtonItem = settingsButton; 

- (IBAction)goToSettings:(id)sender{  
    [self performSegueWithIdentifier:@"SettingsSegue" sender:self]; 
} 

मैं में शीर्षक जोड़कर की कोशिश की नेविगेशनटाइम दृश्य के दौरान नए व्यू कंट्रोलर.एम क्लास के डिल्डलोड फ़ंक्शन मैंने बनाया (इस Link में उल्लिखित है लेकिन यह काम नहीं करता है)

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
    self.navigationItem.title = @"Settings"; 
    self.navigationItem.leftBarButtonItem = self.editButtonItem; 
} 

लेकिन यह अभी भी मेरे स्टोरीबोर्ड में दिखाई देता है

तो मेरे सवाल है (यह दृश्य के तहत लेकिन देखने के प्रदर्शन में नहीं सूची में दिखाई) कारण है कि यह अब तक दिखा और कैसे किया जाता है क्या मैं इसे प्राप्त करूँ? मुझे बैक बटन चाहिए जो मेरे विस्तार दृश्य नियंत्रक की तरह है जो मास्टर-विस्तार परियोजना के साथ आया था।

संपादित करें # 1

मैं चाहे नेविगेशन नियंत्रक नहीं के बराबर है के लिए एक जांच को शामिल किया है और यह नहीं के बराबर नहीं है (यदि बयान कभी नहीं दर्ज किया गया है) मैं भी नेविगेशन आइटम बदलते वापस करने के लिए और हटाने की कोशिश की और कोई भी काम किया है ।

if(self.navigationItem == nil) 
{ 
    [ self.navigationItem init]; 
} 
self.navigationItem.title = @"Settings"; 
self.navigationItem.leftBarButtonItem = self.navigationItem.backBarButtonItem; 

अब जब कि मैं एक छवि मैं दिखा सकते हैं कि नेविगेशन आइटम सूची में दिखाई देता लेकिन does not दृश्य

enter image description here

+0

करना था, तो यहां बयान कभी नहीं है था दर्ज किया गया, क्योंकि दस्तावेज़ कहते हैं कि स्वयं। navigationItem फ्लाई पर बनाया गया है। –

उत्तर

12

नेविगेशन आइटम क्योंकि मेरे segue की "शैली" के ऊपर दिखाई नहीं दिया।

दृश्य दृश्य नियंत्रक को मास्टर व्यू कंट्रोलर से दृश्य को स्थानांतरित करने वाला सीगू 'मोडल' पर सेट किया गया था। इसे 'पुश' पर सेट करना होगा।यह स्टोरीबोर्ड से किया जाता है उपयोगिताओं फलक पर

1

आपको लगता है कि सत्यापित किया है पर दिखाई दिखाने के लिए पर्याप्त प्रतिष्ठा है आपके दृश्य में सूचीबद्ध नेविगेशन नियंत्रक DidLoad विधि शून्य नहीं है?

यह मानते हुए कि आप सही तरीके से एक self.navigationItem है कि गैर शून्य की क्या ज़रूरत है, ऐसा लगता है कि यदि आपने अपनी self.navigationItem.leftBarButtonItem एक editButtonItem लिए सेट कर रहे हैं, तब यह सब एक साथ निकालने का प्रयास करें!

तो इसे हटाने का समाधान नहीं करता समस्या कोशिश:

self.navigationItem.leftBarButtonItem = self.navigationItem.backBarButtonItem; 
6

आप ऐसा करके अपने Segue शैली बदलना होगा:

  • अपने स्टोरीबोर्ड में Segue का चयन करें;
  • विशेषता निरीक्षक (दाएं फलक टैब पर) पर जाएं;
  • पुश में स्टाइल विशेषता बदलें।

यह स्क्रीन रोल को दाएं से बाएं बना देगा और नेविगेशन बार स्लाइडिंग दिखाई देगा। मॉडल के साथ, स्क्रीन स्क्रीन के नीचे से ऊपर तक आती है और यह नेविगेशन बार प्रकट नहीं होने देगी।

0

कृपया जांचें कि आपका व्यू कंट्रोलर नेविगेशन नियंत्रक का रूट व्यू कंट्रोलर है या नहीं। आप एक दृश्य नियंत्रक को एक मोडल व्यू कंट्रोलर के रूप में सीधे प्रस्तुत नहीं कर सकते हैं। आपको अपने व्यू कंट्रोलर को नेविगेशन कंट्रोलर के रूट व्यू कंट्रोलर के रूप में बनाना होगा और फिर अपने नेविगेशन कंट्रोलर को मोडल व्यू कंट्रोलर के रूप में पेश करना होगा।

// Create the root view controller for the navigation controller 
// The new view controller configures a Cancel and Done button for the 
// navigation bar. 
YourViewController *addController = [[YourViewController alloc] 
        init]; 

// Configure the YourViewController. 

// Create the navigation controller and present it. 
UINavigationController *navigationController = [[UINavigationController alloc] 
         initWithRootViewController:addController]; 
[self presentViewController:navigationController animated:YES completion: nil]; 
4

मेरे मामले में समस्या यह है कि नेविगेशन नियंत्रक "प्रारंभिक दृश्य नियंत्रक" नहीं था

तो मैं इस

enter image description here

संबंधित मुद्दे