2013-04-15 44 views
1

非弧的背視圖通常我卸載上navigationcontroller

 [webView stopLoading]; 


viewDidUnload

但現在在ARC因爲viewDidUnload方法不會被調用,其中我是否可以在移回web瀏覽器時停止加載(由導航控制器推送的ViewController)。

我想這樣做,因爲我有幾個問題進行的WebView加載

+1

'viewDidUnLoad'的棄用是在iOS6中,如果與ARC沒有關係,在某些情況下'viewDidDisappear:'或'viewWillDisappear:'可以爲你做伎倆 – tkanzakic

+0

謝謝我使用了viewWillDisappear,它對我有效,但我不知道在沒有弧的情況下我沒有任何問題 –

+0

如果你正在使用故事板,你也可以實現一個'dealloc'方法,當視圖被解散時調用它,我不知道是否在xib的情況下文件的行爲是相同的,我現在不能測試 – tkanzakic

回答

1

viewDidUnload不會被調用無關與ARC。一個是框架中的棄用方法,另一個是編譯器功能。 viewDidUnload在iOS 6中已被棄用,因爲坦率地說,如果所有內容都正確寫入,並不是真的需要。

不推薦在viewDidDisappear:中實現stopLoading邏輯,因爲如果您將另一個視圖控制器放在具有Web視圖的視圖控制器之上,它也會使其停止加載。相反,請在視圖控制器的dealloc方法中調用stopLoading。當視圖控制器從導航堆棧彈出時,它將被釋放,並調用dealloc方法。

+0

我不使用故事板,所以我不能使用dealloc,如果萬一我不推動任何控制器頂部我可以使用viewDidDisappear –

+0

@LochanaRagupathy'dealloc'與無關故事板。當對象被釋放時,它們的'dealloc'方法被調用。 請在這裏閱讀:http://en.wikipedia.org/wiki/Destructor_(computer_programming) –

+1

ARC只是編譯器生成的代碼,可以幫助您管理內存。對象仍然被分配,保留,釋放和釋放;您只需讓編譯器爲您完成繁重的工作。當您在導航控制器中推送視圖控制器時,它將被保留。當你彈出視圖控制器(回去)時,它被釋放。由於沒有其他人保留它,調用'dealloc'方法。 –

1
- (void)dealloc 
{ 
    [webView stopLoading]; 
} 

即使您正在使用ARC,它也能正常工作。

但是,您不能在其中調用[super dealloc];。因爲,這將由編譯器本身生成。