GamePlayViewController

GamePlayViewController

我花了一个月的时间试图将我的int传递到一个新的观点。我的int称为score,并连接到一个名为scorelab的标签。用户会增加分数,一旦他们用完游戏,游戏视图就会切换到跨屏游戏,我希望用户的分数显示在屏幕上的游戏标签中。游戏控制器称为GamePlayViewController,而放弃的控制器称为GameDidEndViewController。我已经厌倦了尝试使它起作用。我已经看过所有可能的教程,但似乎对我的情况没有任何帮助。请帮助我,我将非常感激,这是我需要完成的游戏的最后一部分。先感谢您!

抱歉,这里的代码是:

GamePlayViewController.h

#import "GameDidEndViewController.h"


int score;

IBOutlet UILabel *scorelab;


GamePlayViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{

if ([[segue identifier] isEqualToString:@"GameOver"])
{

    GameDidEndViewController *vc = [segue destinationViewController];

    [vc setscore2: score];
}
}


GameDidEndViewController.h

#import "GamePlayViewController.h"
IBOutlet UILabel *scorelab2;
int score2;
}
@property (nonatomic , assign) int score2;
@property (nonatomic , assign) UILabel *scorelab2;


GameDidEndViewController.m

@synthesize score2 , scorelab2;
-(void)viewWillAppear:(BOOL)animated {
scorelab2.text = [NSString stringWithFormat: @"%d", score2];
[super viewWillAppear: animated];
}

最佳答案

这是一些使用ViewControllersStoryboard之间传递数据的教程:


Storyboards Segue Tutorial: Pass Data Between View Controllers
Tutorial on How-To Pass Data Between Two View Controllers


或使用像这样的东西:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:...]) {
        MyViewController *controller = (MyViewController *)segue.destinationViewController;
        controller.score = score;
    }
}


希望这可以帮助。

10-05 20:01