MadMaxAPP
MadMaxAPP

Reputation: 1075

ViewController viewDidLoad after presentModalView called?

I have a viewController called "FirstViewController". In an IBAction i call another ViewController called "thePageFlipViewController" and push it in sight via

[self presentModalViewController:thePageFlipViewController animated:YES];

after some time the user closes thePageFlipViewController with a button where the following code is executed via a delegate in FirstViewController:

[self dismissModalViewControllerAnimated:YES]; [thePageFlipViewController release];

And here is my problem:

-viewDidLoadin FirstViewController get's sometimes called after dismissing thePageFlipController. I don't understand why, because firstViewController should live in background. Is it dependent how long the modal view is displayed? is it possible that ARC does release something?

My problem is, that i initialise a lot of objects in viewDidLoad and the app crashes if viewDidLoad gets called again. I define some Routes for RESTKit there and RestKit complains that the routes are already set up and crash the app.

Any Help is appreciated.

Upvotes: 0

Views: 1093

Answers (1)

progrmr
progrmr

Reputation: 77201

When a view is not actually displayed it can be unloaded to free up memory. You would get a call to viewDidUnload: when that happens so you can release any objects you are holding strong references to. Then next time the view is needed, viewDidLoad: will get called again when the view is reloaded, there you have to recreate the objects you released in viewDidUnload:.

See the Memory Management section of the UIViewController class reference.

Also this answer has a good explanation already.

Upvotes: 1

Related Questions