私のプロジェクトに複数のviewcontrollerがあります。アプリケーションが起動し、ログイン画面を表示すると、最初のviewcontrollerが呼び出されます。資格情報が正しく、ユーザーがログインすると、モーダルビューは終了します。別のviewcontrollerが次のようにインスタンス化されます:閉じるときにviewcontrollerからすべての設定を削除します。
[self dismissModalViewControllerAnimated:NO];
Form *formcontroller = [[Form alloc] init];
[self presentModalViewController:formcontroller animated:YES];
私の他のビューコントローラが表示されると、古いものが消えます。私secondviewcontrollerの上に、私はウィッヒが正確に同じことを、ログアウトボタンを得たので、それは現在のViewControllerを閉じると、このように別のものを呼び出します。
-(IBAction)logOut:(id)sender{
[self dissmissModalViewControllerAnimated:NO];
}
そして、私のviewdiddisappear中:
-(void)viewDidDisappear:(BOOL)animated{
Postform3ViewController *logincontroller = [[Postform3ViewController alloc] init];
[self presentModalViewController:logincontroller animated:YES];
}
問題は: 私がログアウトボタンを押すと、私はlogincontrollerに戻ります。資格情報はまだ入力されています。私の結論は、最初のビューコントローラはメモリ内にとどまることです。何が間違っているのですか?
編集:
私は自分の解決策を見つけました。私は自分のアプリケーションをプロファイリングしていましたが、メモリリークは見つかりませんでした。だから、私はすべてが解放されたと決めました。それから、私はすべてを空にすることができたと思った。すべての
-(void)viewDidAppear:(BOOL)animated {
gebruikersnaam.text = @"";
wachtwoord.text = @"";
[self.activeTextField resignFirstResponder];
[super viewDidAppear:animated];
}
それは正しいです私は3番目のブロックにlogincontrollerを作成しています。私の最初のコントローラーはPostForm3ViewControllerと呼ばれています。 コントローラをリリースしようとしましたが、それは役に立たなかった。 –
そうですが、作成したばかりの「logincontroller」ではなく、コントローラ「formcontroller」を押しています。 –
ああ私のおかしい。私はそれを打ちました。私のコードでは、うまくいきます。それで最初の質問が残されます。どこでコントローラをリリースすればいいのですか?私も自分のコードを編集しました。 –