2013-09-04 5 views
6

काम नहीं करता है यदि मैं आईओएस 7 पर ViewDidAppear विधि में अवरुद्ध AlertView दिखाने का प्रयास करता हूं, तो मैं AlertView को खारिज करने में सक्षम नहीं था। कोई स्पर्श ईवेंट AlertView तक नहीं पहुंच जाएगा। दृश्य का बटन हाइलाइट किया जाएगा, लेकिन कुछ भी नहीं होगा। यदि मैं आईओएस < 7 पर एक ही कोड चलाता हूं, तो यह ठीक काम करेगा।Iam 7 पर ViewDidAppear विधि में एक अवरुद्ध UIAlertView दिखा रहा है Xamarin.iOS के साथ

public override void ViewDidAppear(bool animated) 
    { 
     base.ViewDidAppear(animated); 

     var alert = new UIAlertView("Title", "Message", null, "OK"); 
     alert.Dismissed += (sender, args) => result = true; 
     alert.Show(); 

     while (!result) 
      NSRunLoop.Current.RunUntil(NSDate.FromTimeIntervalSinceNow(0.1)); 
    } 

मैं Xamarin.iOS संस्करण 6.4.3.0 का उपयोग कर रहा एप्पल एसडीके 6.1 के साथ:

यहाँ उदाहरण कोड है। मुझे Xamarin.iOS 6.9.6.0 और ऐप्पल एसडीके 7.0 के अल्फा के साथ एक ही समस्या है।

क्या कोई मुझे बता सकता है कि समस्या क्या है?

सहायता के लिए धन्यवाद।

+0

आईओएस 7 अभी भी एनडीए के तहत है, और आपके पास जनता में चर्चा करने का अधिकार नहीं है। –

+3

आईओएस 7 आज जारी किया गया है। एक उत्तर की बहुत सराहना की जाएगी, क्योंकि मुझे एक ही समस्या है ... – jbandi

उत्तर

-1

आप

alert.Clicked += AlertViewClick; 

जोड़ना चाहिए और

private void AlertViewClick (object sender, UIButtonEventArgs ea) 
{ 
    //Stuff Here 
} 

में सामान करते हैं और

while (!result) 
      NSRunLoop.Current.RunUntil(NSDate.FromTimeIntervalSinceNow(0.1)); 
2

को दूर यह यूआई निष्पादन ब्लॉक करने के लिए NSRunLoop उपयोग करने के लिए अच्छा विचार नहीं है, लेकिन निश्चित रूप से नहीं है इसे करने का एक बेहतर तरीका।

उपयोगकर्ता UIAlertView बटन दबाए रखने के लिए आप एसिंक/प्रतीक्षा पैटर्न का उपयोग कर सकते हैं। यहां नमूना है जिसका आप उपयोग कर सकते हैं: https://gist.github.com/prashantvc/6725882

1

this Apple developer forum thread के अनुसार, आईओएस 7 में एक बग है जहां RunLoop शुरू होने के बाद UIAlertView प्रतिनिधि को कभी नहीं कहा जाएगा। एक व्यक्ति के मुताबिक, यह अभी भी आईपैड पर काम कर सकता है। फिक्स या वर्कअराउंड मिलने पर आप उस फोरम थ्रेड के लिए ईमेल अपडेट की सदस्यता ले सकते हैं।

+0

अच्छी तरह से देखा गया, मुझे आशा है कि आगामी आईओएस रिलीज में कोई फिक्स होगा। एरिका सदन द्वारा आईओएस 6 कुकबुक में मॉडल अलर्टडिलेगेट को लागू करने के बारे में एक प्राप्ति है: https://github.com/erica/iOS-6-Cookbook/blob/master/C03%20Alerts/02%20-%20Modal/ModalAlertDelegate.m यह नुस्खा आईओएस 7 में और अधिक काम नहीं करता है, गरीब देव जिन्होंने अपने ऐप्स में नुस्खा लगाया (जैसे मैंने किया)। – jbandi

+0

हाँ, इस सी # उदाहरण के आधार पर बहुत से लोगों ने मोनोटच/ज़ैमरिन का उपयोग करके वही किया: http://stackoverflow.com/questions/4248244/iphone-uialertview-modal/4807697#4807697 –

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