2011-04-21 14 views
16

tüm Hey, kalıcı görünümü denetleyicisi sunulması ve bir UIWebView bu görünüm denetleyicisi bir web sayfası yükleyerek ediyorum :UIWebView - istek devam ederken kalıcı görünümü denetleyicisi görevden kazasında

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

Her şey eğer iyi çalışır Web sayfasının yüklenmesine izin verin ve sonra görünümü reddediyorum.

#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:] 

Bazı arama yaptım ve ne olup bittiğini anlamaya olamaz: istek yüklenirken ben görünümü kapatırsanız, bu stacktrace olsun. Herhangi bir fikir? Görünüm denetleyicisini reddederken isteğimi iptal etmem gerekiyor mu?

Çok teşekkürler!

cevap

38

Saçma sapan - sadece isteği iptal etmek ve delegeyi iptal etmek zorundasınız!

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

Bunu nerede yapıyorsunuz? dealloc? viewWillDisappear? – Bill

+1

@Bill - viewWillDisappear IIRC ancak bu sorunun ilk kez kırpılmasından beri yıllar geçti. Bunu dene ve bana nasıl olduğunu bilmeme izin ver! – Mark

+0

eski soru ama deinit en iyi yer – CZ54

0

İsteğiniz ana yayının üstünde çalışıyor. İstek, kullanıcı arayüzünüzün askıya alınmasını sağlıyor mu? Kodun geri kalanı işlemeden önce isteğin tamamlanmasını beklemek zorunda kalırsanız, kullanıcı yüklemeyi beklerken neler olup bittiğini merak eder. İsteği ayrı bir iş parçacığında çalıştırmayı deneyin.

+0

UI takılmıyor. İstek yüklendiğinde ekranı açabilirim, bu da bu soruna neden oluyor ve böylece kullanıcı arayüzü engellenmiyor veya askıya alınmıyor. – Mark

+1

UIWebView, UIKit'in bir parçasıdır ve bu nedenle ana iş parçacığına erişilmelidir, değil mi? – powerj1984

İlgili konular