2011-04-19 222 views
1

我意識到還有其他像這樣的話題,但沒有一個真的有幫助。我試圖從一個視圖變量到另一個視圖,但我完全不知道如何。從一個視圖獲取變量到另一個視圖

爲了給出一些背景故事,我的遊戲是一個水果忍者遊戲,其中的東西在屏幕上,你必須切片。如果3個精靈離開屏幕未切割,則遊戲結束,並通過按鈕返回到查看屏幕上的遊戲。此外,這應該去「flipSideView」,這是高分,但我的flipSideView轉換的實施不起作用。這不是主要問題,主要問題是我不知道如何從mainView(將其存儲爲int)中的遊戲中獲得分數到flipSideView(其中包含玩家名稱)。

穿過剔方法這一條件(其執行定期檢查和方法,用於遊戲)

if (lifeCounter < 1) 
{ 
     gameIsOver = YES; 
     [self showInfo:0]; 
     [self viewGameOverScreen]; 
} 

即轉到gameOverView,這將坐在那裏,直到重放按鈕的主視圖改變爲gameOverView被按下:

- (IBAction)replayAction:(id)sender 
{ 
     [self.delegate gameOverViewControllerDidFinish: self]; 
} 

gameOverViewControllerDidFinish重新啓動遊戲並關閉視圖。

- (void) gameOverViewControllerDidFinish: (GameOverViewController *) controller 
{ 
     [self restart]; 
     [self dismissModalViewControllerAnimated: YES]; 
} 

重新啓動方法剛剛重置主視圖(分數,級別,生命)中的3個主要值。

當遊戲重新啓動時,遊戲應該將得分和任何名稱存儲在flipSideView的文本字段中(可以在任何時候玩遊戲時查看)並以某種方式存儲以供將來參考。它不應該存儲在一個文件中,因爲這是下週的任務。

由於抄襲問題,我不想發佈整個程序,但如果有其他部分可能會使它更容易理解,我一定會發布它們。

由於提前, 基督教

回答

1
NSUserDefaults *currentScore = [NSUserDefaults standardUserDefaults]; 
[currentDefaults setFloat:yourScoreVariable forKey:@"HighScore"]; 
[currentDefaults synchronize]; 

上面存儲了比分。 下面檢索得分。

CGFloat fltHighScore; 
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults]; 
fltHighScore = [currentDefaults floatForKey:@"HighScore"]; 
0

您可以爲此使用您的應用程序委託。您需要在那裏聲明您的變量,然後您可以在整個應用程序中通過以下方式訪問它:

TestAppDelegate * appDelegate =(TestAppDelegate *)[[UIApplication sharedApplication] delegate]; NSString * string = [appDelegate.Placemarks objectForKey:appDelegate.title];

不知道這是不是最好的方法...

好運吧!

1

建議:

你可以把該變量在控制器類,他們都可以訪問。

在控制器中擁有可共享的數據總是更好,然後查看是否必須在視圖之間共享數據。

通過委託方法更新可共享數據。

相關問題