2012-02-20 13 views
8

मुझे अपने ऐप्स वैश्विक UINavigationController पर DialogViewController को दबाते समय एक समस्या आई, यह बैक बटन खो देगा।DialogViewController UINavigationController पथ को तोड़ता है

मैं इस सरल उदाहरण के लिए नीचे उबाल कर रहा था:

var nav = new UINavigationController(); 
window.RootViewController = nav; 

nav.PushViewController(new UIViewController() { Title = "#1"}, true); 
nav.PushViewController(new DialogViewController(new RootElement("#2")), true); 
nav.PushViewController(new UIViewController() { Title = "#3"}, true); 

आप #3 से #2 करने के लिए मिल सकता है, लेकिन नहीं #2 से #1 करने के लिए।

क्या मैं DialogViewController के साथ कुछ गलत कर रहा हूं? हालांकि मैं UIViewController के लिए ड्रॉप-इन प्रतिस्थापन के रूप में काम कर सकता हूं।

उत्तर

12

, बस का उपयोग करें:

nav.PushViewController(new DialogViewController(new RootElement("#2"), true), true); 

अर्थात DialogViewControler निर्माता के लिए अतिरिक्त true

+0

यह मुश्किल था। लेकिन मुझे लगता है कि UIViewController के डिफ़ॉल्ट व्यवहार से दूर जाने के पीछे अच्छे कारण हैं। – Timm

+0

यह मुझे थोड़ी देर के लिए रोक रहा है। मुझे यह जानना अच्छा लगेगा कि आपको यह कैसे पता चला ... –

+1

@ क्रिस्टियनपेन मुझे बिल्कुल याद नहीं आया कि मुझे यह कैसे पता चला - लेकिन यह संभवतः एमटीडी के स्रोत कोड को पढ़ रहा था, जो https: // github पर उपलब्ध है .com/migueldeicaza/MonoTouch.Dialog – poupou