如何在UIViewControllers之间传输数据?

时间:2011-03-28 17:50:04

标签: iphone objective-c cocoa-touch

目前我正在制作一款适用于iPhone的游戏,并且希望每个级别都位于不同的uiviewcontroller上(我已经尝试将它们全部放在同一个视图控制器上,但这只会让它变得有点蠢)。但是,我需要一种方法在关卡的视图控制器中获得高分并将其发送回菜单视图控制器。我正在使用代码:

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

进入viewcontroller和

[self dismissModalViewControllerAnimated:YES];

回来。我熟悉NSUserDefaults,这是我目前用来获得高分的东西。但是,我知道这段代码会重置级别的视图控制器,这仍然很好,甚至很好,因为我希望重置级别 - 但是如果只是我可以获得有用的数据。

请用简单的话说,因为我对编程很陌生。

提前致谢!

史蒂夫·贝克尔

PS我正在使用xcode 4.0 ...

-------------------------------------------- ALSO !! !------------------------------------- 我正在使用的代码,我只能弄清楚如何获得转换“FlipHorizo​​ntal”,“CoverVertical”和“CrossDissolve”...但我在iPhone上看到了许多其他很酷的过渡 - 就像翻页一样翻页书中的页面。如果您知道如何进行其他转换,请告诉我!!!!非常感谢!!!!!

4 个答案:

答案 0 :(得分:1)

您需要使用delegationNSNotifications

答案 1 :(得分:1)

将所有级别放在同一UIViewController上更为标准,除非逻辑如此不同以至于它就像玩不同的游戏一样。但是,您可以使用大量不同的方法来实现此目的。例如,您可以使用NSNotificationCenterNSUserDefaults或plist。

答案 2 :(得分:1)

您还可以使用singleton class修改和访问项目的任何类别中的可共享数据,

以下是目标中单身类的优秀SO帖子 - C

Singleton shared data source in Objective-C

<强>编辑:

What should my Objective-C singleton look like?

下面的

Edited: for Curl page animation :是博客教程和源代码的链接。

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

答案 3 :(得分:1)

考虑像黑手党这样的不同视图控制器:每个视图控制器都是在需要知道的基础上运行。

看看我之前给过的this answer