2013-11-03 31 views
1

我想這對我們所有人來說都是一個非常普遍的問題。我一直在學習幾個小時,但也許是因爲我太低級了,我仍然不知道如何解決它。我希望有人能夠幫助。切換視圖,活動字節不斷上升

下面是這種情況:

  1. 我對故事板3個視圖控制器(沒有人回來了,代碼在這一刻)
  2. 1日1(主一)有7 UIbuttons,4 UIlabels和3 UIImages,它們都沒有連接到h文件。
  3. 我使用其中一個按鈕連接到下一個視圖(模態),並在第二個視圖上創建一個按鈕以連接到第三個視圖,最後在視圖3上的按鈕連接回主視圖。

看起來很簡單。但是,當我在樂器/分配上運行它時,我發現每次從視圖3回到主視圖時,活動字節(輪1MB)都有一個大的跳躍。 (回顧:到目前爲止,「H」或「M」中沒有代碼)。然後,我試圖刪除一些按鈕和標籤,並重新分配。我發現實時字節數仍在增加,但數量較少...顯然存在無限的內存增長問題(我猜)。

所以這裏是我的問題:我們怎麼能解決這個問題?以及他們如何將那麼多的資源分配給按鈕,標籤和圖像,即使他們沒有附加任何東西?

非常感謝!

PS。在報告中沒有發現泄漏,並且他們正在不斷增長...

我試過這個按鈕的主視圖去查看2,但是當我再次回來它只是可以回去主要對VIEW3 ...

[self dismissViewControllerAnimated:YES completion:nil]; 

mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:Nil]; 

UIViewController *go2= [mainStoryboard instantiateViewControllerWithIdentifier:@"view2"]; 

[self presentViewController:go2 animated:YES completion:nil]; 

回答

2

你不應該「返回」到使用賽格瑞以前的控制器(除非你使用一個展開SEGUE),因爲塞格斯總是創建新的視圖控制器。所以,你不是真的回到主視圖,你正在創建一個新的實例。當你經歷這個循環時,你會添加越來越多的視圖控制器,並且它們都不會被釋放。要糾正這種情況,您應該使用unwind segue返回主視圖,或者使用dismissViewControllerAnimated返回代碼:完成:

+0

Thx Rdelmar!這意味着使用像UIViewController * goback = [mainStoryboard instantiateViewControllerWithIdentifier:@「main_one」]; [self presentViewController:goback animated:YES completion:nil]; 也會創建一個新的VC? – Summerhei

+0

我試圖使用dismissViewControllerAnimated:完成:但整個事情只是暫停,不能去任何地方=。= – Summerhei

+0

@Summerhei,是的,這創建了一個新的實例。 – rdelmar