1

首先...我是意大利人,所以我很抱歉我的英語不好!導航控制器和酒吧 - 內存管理

所以......這是我的應用程序: 我使用的是導航控制器:在第一視圖中有10個按鈕,每個按鈕調用這樣的功能:

[self pushViewController:nameview animated:YES]; 

到不同的UIViewController !所以我有11個uiviewcontroller! 每個控制器decleared喜歡這裏

@interface ... 
IBoutlet UIViewController *viewcontroller; 
... 
@property (nonatomic, retain) IBOutlet UIViewController *viewcontroller; 

最後我不得不說,我與IB合作!

我的問題是,我的應用程序不釋放內存! 當我在視圖中,然後點擊「backbuttonitem」(由IB創建,而不是由我創建),最後一個視圖不會被釋放(再次,爲我的壞英語感到抱歉)...並且如果用戶看到所有10個視圖,該應用程序收到警告按摩(低內存)!

如何釋放popviewcontroller操作前的最後一個視圖鋸?

感謝:d

回答

1

當你推一個視圖控制器到你需要釋放它作爲導航控制器現在擁有它導航控制器。當您使用popViewControllerAnimated:導航控制器將確保視圖控制器從內存中釋放的護理

UIViewController *controller = [[UIViewController] initWithNibName:@"Nib" bundle:nil]; 
[self pushViewController:controller animated:YES]; 
[controller release]; 

然後:例如,你會做以下。

+0

抱歉,但我是一個真正的新手:P 所以......我的導航控制器爲「X」,我在視圖中的「A」,我想在視圖「B」 推我已經試過這個: UIViewController * B = [[UIViewController] initWithNibName:@「Nib」bundle:nil]; [self pushViewController:B animated:YES]; [B版]; 但xcode告訴我「預期:之前]令牌」O_O 哪裏出錯? – JAA 2010-06-20 09:18:21

+0

我不明白爲什麼我必須這樣做 UIViewController * controller = [[UIViewController] initWithNibName:@「Nib」bundle:nil]; 因爲我用IB來創建uiviewcontroller ... – JAA 2010-06-20 12:47:40

+0

如果不立即顯示,您不應該使用IB創建視圖控制器。您真的應該只在需要顯示時創建控制器。 – rickharrison 2010-06-20 14:11:51