2011-04-21 7 views
16

अरे सब, मैं एक मॉडल दृश्य नियंत्रक पेश कर रहा हूँ और एक UIWebView में उस दृश्य नियंत्रक पर एक वेबपृष्ठ लोड हो रहा:UIWebView - दुर्घटना जब मोडल दृश्य नियंत्रक को खारिज करते हुए अनुरोध प्रगति में है

- (void)viewWillAppear:(BOOL)animated 
{ 
    self.requestObj = [NSURLRequest requestWithURL:[NSURL URLWithString:[MPServerPrefs serverPrefs].url_of_sandwich]]; 
    [self.helpWebView loadRequest:self.requestObj]; 
} 

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

#0 0x31a94466 in objc_msgSend 
#1 0x35ebcb70 in -[UIWebView webView:identifierForInitialRequest:fromDataSource:] 
#2 0x35ebc1c0 in -[UIWebViewWebViewDelegate webView:identifierForInitialRequest:fromDataSource:] 
#3 0x36130d04 in __invoking___ 
#4 0x36130bd4 in -[NSInvocation invoke] 
#5 0x36130730 in -[NSInvocation invokeWithTarget:] 
#6 0x329fc2f4 in -[_WebSafeForwarder forwardInvocation:] 

मैं कुछ खोज किया था और समझ नहीं क्या हो रहा है। कोई विचार? दृश्य नियंत्रक को खारिज करते समय मुझे अपना अनुरोध रद्द करने की आवश्यकता है?

बहुत धन्यवाद!

उत्तर

38

मुझे मूर्खतापूर्ण - आपको केवल अनुरोध रद्द करने और प्रतिनिधि को बाहर करने की आवश्यकता है!

[self.helpWebView setDelegate:nil]; 
[self.helpWebView stopLoading]; 
+0

आप यह कहां करते हैं? dealloc? viewWillDisappear? – Bill

+1

@ बिल - व्यूविल आईआईआरसी प्रकट होगा लेकिन यह समस्या तब हुई है जब से इस समस्या को पहली बार उगाया गया था। कोशिश करो और मुझे बताएं कि यह कैसे चला जाता है! – Mark

+0

पुराना सवाल लेकिन डेनिट सबसे अच्छी जगह है – CZ54

0

आपका अनुरोध मुख्य धागे पर चल रहा है। क्या अनुरोध आपके यूआई को लटका देता है? यदि आपको शेष कोड निष्पादन से पहले अनुरोध समाप्त करने का अनुरोध करना है, तो आपका उपयोगकर्ता यह सोचने के लिए छोड़ देगा कि दृश्य लोड होने का इंतजार कर रहा है। एक अलग थ्रेड पर अनुरोध चलाने का प्रयास करें।

+0

यूआई लटका नहीं है। जब अनुरोध लोड हो रहा है, तो मैं स्क्रीन छोड़ सकता हूं जो इस समस्या का कारण बन रहा है ताकि यूआई अवरुद्ध न हो या फांसी न हो। – Mark

+1

UIWebView UIKit का हिस्सा है और इसलिए मुख्य धागे पर पहुंचा जाना चाहिए, है ना? – powerj1984