2011-08-10 15 views
12

मेरे पास एक वर्ग है जो UITableViewController प्रकार है। इस कक्षा में UINavigationBar प्रकार का सदस्य है जिसका उपयोग मैं तालिका दृश्य के लिए एक संपादन बटन में जोड़ने के लिए करता हूं।pushViewController नेविगेशन नियंत्रक के बिना

इस विधि कॉलिंग का उपयोग करना अमान्य है।

[self.navigationController pushViewController:controller]; 

कैसे मैं एक UINavigationController में मेरी UITableViewCOntroller लपेटकर के बिना एक तालिका पंक्ति चयन करने के बाद दृश्य पर एक विस्तृत दृश्य धक्का कर सकते हैं?

उत्तर

5

यदि कोई नेविगेशन नियंत्रक नहीं है तो आप एक दृश्य नियंत्रक को नेविगेशन नियंत्रक पर धक्का नहीं दे सकते। यदि आप नियंत्रकों को धक्का देना चाहते हैं और इसे शीर्षतम नियंत्रक और सबकुछ प्रदर्शित करते हैं, तो बस एक UINavigationController का उपयोग करें और इसके साथ किया जाए।

आप अपने UINavigationBar पर मनमाने ढंग से UINavigationItem एस दबा सकते हैं, और जब उपयोगकर्ता बैक बटन का उपयोग करता है तो आपके बार के प्रतिनिधि को सूचित किया जाएगा ताकि आप उचित कार्रवाई कर सकें। अधिक जानकारी के लिए the documentation देखें।

35

यदि आप नेविगेशन नियंत्रक का उपयोग नहीं करना चाहते हैं तो निकटतम विकल्प मोडल व्यू कंट्रोलर हैं। ।

[self presentViewController:controller animated:YES completion:nil]; 

यह नीचे से अपनी स्क्रीन में नियंत्रक स्लाइड हो जाएगा, या यदि आप नियंत्रक के modalTransitionStyle बदलने इस पर फ्लिप या में फीका कर सकते हैं

नियंत्रक खारिज करने के लिए सिर्फ फोन:

[self dismissViewControllerAnimated:YES completion:nil]; 
+0

आप मेरा दिन आदमी को बचाया , धन्यवाद:

यहाँ प्रलेखन के लिए कुछ संबंधित लिंक हैं –

9

मैं UITavigationController के अंदर UITableView को लपेटूंगा और केवल UINavigationBar को छुपाऊंगा।

[self.navigationController setNavigationBarHidden:YES animated:NO]; 

और फिर एक वापस बटन है कि ढेर बंद ViewController पॉप पैदा करते हैं।

[self.navigationController popViewControllerAnimated:YES] 
9

क्या किया जा सकता है सामान्य रूप से नेविगेशन नियंत्रक का उपयोग करना और फिर इसे छिपाना।

स्टोरीबोर्ड का उपयोग करके नेविगेशन नियंत्रक को छिपाने के लिए: इसे चुनें और विशेषता निरीक्षक में "नेविगेशन बार दिखाएं" अनचेक करें। अन्य प्रत्येक नियंत्रक में नेविगेशन बार को छिपाने का सुझाव दे सकते हैं, लेकिन इसके साथ समस्या यह है कि यह मिलीसेकंड के लिए दिखाई देगी और फिर गायब हो जाएगी।

Navigation Controller attributes tab

1

यह है कि एक UINavigationController बिना आप दृश्य नियंत्रक धक्का नहीं कर सकते हैं सच है। आप बल्कि वर्तमान दृश्य नियंत्रक रीति के माध्यम से UIViewController.present(_ viewControllerToPresent:, animated:, completion:)

लेकिन यह देखने नियंत्रक प्रदर्शित करने के लिए जैसे कि यह एक धक्का (या किसी अन्य एनीमेशन आप चाहते हैं) थे एक कस्टम segue बनाने के लिए संभव है, हालांकि ऐसा लगता है कि एक UINavigationController का उपयोग कर सिर्फ बातें बनाता है आसान।

UINavigationController Class Reference

Customizing the Transition Animations

Presenting a Modal View Controller

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