Theme
Theme

Reputation: 417

How do you transfer data between UIViewControllers?

Currently I am making a game for iPhone, and want each level to be on a different uiviewcontroller (I have tried putting them all on the same view controller, but this just makes it jumpy). However, I need a way to get a high score in the level's view controller and send it back to the menu view controller. I am using the code:

SecondLevelViewController *screen = [[SecondLevelViewController alloc] initWithNibName:nil bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:screen animated:YES];
[screen release];

to get to the viewcontroller and

[self dismissModalViewControllerAnimated:YES];

to get back. I am familiar with NSUserDefaults, which are what I am using currently to get high scores. However, I know this code resets the level's view controller, that is still fine and even great because i want the level to reset-- but if just i could get data back that would be helpful.

Please put things in simple words, because I am very new to programming.

Thanks in advance!

Steve Becker

PS I am using xcode 4.0...

--------------------------------------------ALSO!!!------------------------------------- The code I am using, I can only figure out how to get transitions "FlipHorizontal", "CoverVertical", and "CrossDissolve"...But I have seen many other cool transitions on the iPhone--like the page corner flipping like a page in a book. If you know how to do these other transitions, please tell me!!!! Greatly appreciated!!!!!

Upvotes: 1

Views: 805

Answers (4)

Jhaliya - Praveen Sharma
Jhaliya - Praveen Sharma

Reputation: 31722

you could also use a singleton class to modify and access the sharable data in any class of your projects,

Here is the good SO post on singleton class in objective - C

Singleton shared data source in Objective-C

Edited:

What should my Objective-C singleton look like?

Edited: for Curl page animation : below is the link to blog tutorial and the source code.

http://blog.steventroughtonsmith.com/2010/02/apples-ibooks-dynamic-page-curl.html

Upvotes: 1

GorillaPatch
GorillaPatch

Reputation: 5057

Think about the different view controllers like the mafia: every view controller is operating on a need-to-know basis.

Look at this answer I gave before.

Upvotes: 1

FreeAsInBeer
FreeAsInBeer

Reputation: 12979

It's much more standard to have all of the levels on the same UIViewController unless the logic is so different that it's like playing different games. However, you could use a whole slew of different methods to achieve this. For example, you could use the NSNotificationCenter, NSUserDefaults, or a plist.

Upvotes: 1

Joe
Joe

Reputation: 57179

You will want to use delegation or NSNotifications for this.

Upvotes: 1

Related Questions