2011-12-19 12 views
6

मुझे इस मुद्दे के साथ कठिन समय है। मेरा MainWindow.xib, NavigationController है, जिसके लिए दृश्य xib से विरासत में मिला है।मोनो टच। डायलॉग: नेविगेशनबार में वापस आइटम

अब, मैं मुख्य दृश्य से DialogViewController दबाता हूं, लेकिन मुझे दूसरे दृश्य के नेविगेशन बार पर बैक बटन नहीं दिखाई दे रहा है।

क्या कोई विशिष्ट बात है कि मुझे DialogViewController के लिए सेट करने की आवश्यकता है जब इसे UIViewController से धक्का दिया जा रहा है।

धन्यवाद और सादर अभिषेक

उत्तर

14

से लागू कर सकते हैं DialogViewController के लिए निर्माता एक पैरामीटर धक्का कहा जाता है जो आपको सही पर सेट किया जाना चाहिए:

new DialogViewController(rootElement, true); // true will show the back button 
+4

बीटीडब्लू, सभी "सच्चे" पैरामीटर को नेविगेशनइटम। हैड्सबैक बटन को गलत पर सेट किया गया है। यह ViewWillAppear विधि में करता है, इसलिए यदि आप उस विधि को ओवरराइड करते हैं तो आप फिर से दिखाने के लिए बैक बटन प्राप्त कर सकते हैं। यह उपयोगी है अगर आप एक स्टोरीबोर्ड के माध्यम से DialogViewController को दबा रहे हैं। –

2

अपने कोड को देखने के बिना, मुझे यकीन है कि गलत यहाँ वास्तव में क्या हो रहा है नहीं कर रहा हूँ। हालांकि, मुझे UINavigationController के बारे में पता है, दृश्य नियंत्रक ढेर खाली शुरू होता है। जब आप पहली दृश्य नियंत्रक को दबाते हैं, तो यह नेविगेशन नियंत्रक को प्रदर्शित करने के लिए एक दृश्य देता है, लेकिन इसमें 'बैक' जाने के लिए कुछ भी नहीं है, इसलिए यह बैक बटन प्रदर्शित नहीं करता है। यदि आप दूसरा दृश्य दबाते हैं, तो आपको बैक बटन मिल सकता है।

यह भी सुनिश्चित करें कि Title संपत्ति आपके बच्चे के दृश्य नियंत्रकों पर सेट की गई है यदि आप बैक बटन को उस दृश्य को प्रतिबिंबित करना चाहते हैं जिसे आप वापस जा रहे हैं।

-1

तुम भी अपने आप को

dialogViewController.NavigationItem.RightBarButtonItem = new UIBarButtonItem("Back",UIBarButtonItemStyle.Bordered,delegate(object sender,EventArgs e) 
      { 

       NavigationController.DismissModalViewControllerAnimated(true); 
      }); 
+0

यह नेविगेशन बार के दाईं ओर एक बटन बनाता है। बाईं ओर तीर वाला बटन नहीं है। – Rodja

0

मैं एक टैब बार नियंत्रक जो तब बंद हाथ है एक नौसेना नियंत्रक (फ्लाईआउटनावंटॉलर के साथ एक स्टोरीबोर्ड में भी)। यहां से देखने वाले व्यू कंट्रोलर में से एक MT.D सामान के लिए एक संवाददृश्य नियंत्रक में लॉन्च हुआ।

मैं नेविगेशन नियंत्रक में अपने कॉलिंग पॉइंट पर वापस मोनोटच संवाद से एक सुंदर पॉइंट/पतला बैक बटन चाहता था।

लेकिन किसी भी कारण से वर्तमान नेविगेशन नियंत्रक का उपयोग करते समय एमटी.डी में लॉन्च करना भी नेविगेशन खो देता है यानी बटन वापस प्रदर्शित नहीं होता है और वापस पाने का कोई तरीका नहीं है। बाद में mt.d स्क्रीन एक बैक बटन देते हैं।

जाहिर है आपके मेरे लिए मौजूदा ढेर पर जोर दे रहा है जबकि बटन लेकिन यह फ्लॉप काम वापस सक्षम करने के लिए कॉल में एक सच्चे बूलियन पारित करने के लिए माना जाता:

this.NavigationController.PushViewController (dv, true); 

दान के ऊपर मेरे लिए समाधान फ्लॉप काम। लेकिन रूट पर एमटी.डी स्क्रीन मूल संवाद नियंत्रक (या flyoutnav नियंत्रक) में मेरी पिछली स्थिति पर वापस जाने में मदद करता है, जबकि वर्तमान संवाददृश्य नियंत्रक popping।

सुनिश्चित नहीं है कि यह हैक सही तरीका है लेकिन यह काम करता है।

dvc = new MyDvcController(this.NavigationController); 
this.View.AddSubview(dvc.TableView); 

इसी MyDvcController मुख्य रूप से इस तरह loooks:

public partial class MyDvcController : DialogViewController 
{ 
    public MyDvcController (UINavigationController nav): base (UITableViewStyle.Grouped, null) 
    { 

     navigation = nav; 
     Root = new RootElement ("Demos"){ 
      new Section ("Element API"){ 
       new StringElement ("iPhone Settings Sample", DemoElementApi), 

      } 
     }; 
    } 
} 

dv.NavigationItem.RightBarButtonItem = new UIBarButtonItem("Back",UIBarButtonItemStyle.Bordered,delegate(object sender,EventArgs e) 
      { 

       NavigationController.PopViewControllerAnimated(true); 
      }); 

* अद्यतन

मैं वर्तमान viewcontrollers subview को dialogviewcontroller जोड़कर एक वापस बटन पाने के लिए manged

यह monotouch.dialog को वर्तमान नेविगेशन नियंत्रकों के ढेर का हिस्सा बनने और पतला दिखने के साथ स्वचालित बैक बटन प्राप्त करने की इजाजत दी ..yay