我花了一个月的时间试图将我的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];
}
最佳答案
这是一些使用ViewControllers
在Storyboard
之间传递数据的教程:
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;
}
}
希望这可以帮助。