我的項目中有多個視圖控制器。第一個視圖控制器在應用程序啓動時被調用並顯示登錄屏幕。當憑據正確並且用戶登錄時,模態視圖被解除。而另一個視圖控制器是這樣實例化的:解僱時從視圖控制器中刪除所有設置
[self dismissModalViewControllerAnimated:NO];
Form *formcontroller = [[Form alloc] init];
[self presentModalViewController:formcontroller animated:YES];
當我的其他viewcontroller被提出時,舊的消失。在我secondviewcontroller頂部我有一個註銷按鈕,至極不完全一樣的,所以它駁斥當前視圖 - 控制和調用另一個像這樣:
-(IBAction)logOut:(id)sender{
[self dissmissModalViewControllerAnimated:NO];
}
在我viewdiddisappear:
-(void)viewDidDisappear:(BOOL)animated{
Postform3ViewController *logincontroller = [[Postform3ViewController alloc] init];
[self presentModalViewController:logincontroller animated:YES];
}
的問題是: 當我推註銷按鈕,並且我返回到登錄控制器。憑證仍然填充。所以我的結論是,第一個viewcontroller停留在內存中。我究竟做錯了什麼?
編輯:
我找到了自己的解決方案。我正在分析我的應用程序,並且找不到任何內存泄漏。所以我決定一切都被釋放。然後我認爲我能夠把所有東西都設置爲空。我這樣做,在viewDidAppear方法是這樣的:
-(void)viewDidAppear:(BOOL)animated {
gebruikersnaam.text = @"";
wachtwoord.text = @"";
[self.activeTextField resignFirstResponder];
[super viewDidAppear:animated];
}
這是正確的我正在第三塊創建一個登錄控制器。我的第一個控制器就是PostForm3ViewController。 我試圖釋放控制器,但它沒有幫助。 –
沒錯,但是你正在推動控制器「formcontroller」而不是「logincontroller」,這就是你剛剛創建的。 –
啊,我是多麼的愚蠢......我輸入了它。在我的代碼中,它運行良好。所以這留下了第一個問題。我應該在哪裏發佈控制器,以及如何?我也編輯了我的代碼。 –