2013-06-27 47 views
0

我在審覈別人的代碼,並注意到每次添加圖片時點擊'添加圖片',找到並選擇圖片,返回到表格,表格將變爲空白,網頁表單會被刷新。而且,這是因爲url被重新加載。在向下追蹤這個問題,我注意到,原來的開發推翻在WebViewController像這樣的viewDidAppear實例方法:覆蓋viewDidAppear並讓它加載特定的URL不行嗎?

- (void) viewDidAppear:(BOOL)animated { 

    NSURL *url = [NSURL URLWithString:self.defaultUrl]; 

    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 

    [self.webView loadRequest:requestObj]; 
} 

蘋果的文件說

您可以覆蓋此方法來執行與呈現相關的附加任務視圖。如果您重寫此方法,則必須在實現中的某個時刻調用super。

我看到super沒有被調用,我認爲放入NSURLRequest並不是好的做法。我刪除了代碼,添加了URL調用按鈕操作,一切都很好,所以這主要是一個風格/學術問題。

你是否同意loadRequest不應該在那裏?謝謝你的幫助。

回答

1

爲什麼不應該在那裏? loadRequest在另一個線程上異步執行它的工作,所以它不會阻塞主線程。

通過發起異步客戶端請求連接到給定的URL。

如果它的行爲是預期的方式,那麼你決定。

(哦,是的,你應該叫在viewDidAppear超)

+0

當它在那裏,當你從添加圖片到網絡的形式返回它被調用。而且,再次調用它會導致頁面刷新,因此您永遠無法填寫表單。 – jcarpio

+0

在這種情況下,它可能屬於'viewDidLoad'。多數民衆贊成我的意思是「意向的方式」。對於某些應用程序,每次顯示視圖時重新加載請求可能很有用。 – Danilo

+0

啊,我明白了!我將代碼移到了viewDidLoad,它可以工作(不會刷新)。感謝您的建議。 – jcarpio