0

私は自分のintを新しいビューに渡すために1か月を費やしました。私の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];  
}
4

2 に答える 2

4

GameDidEndViewController渡された値を保持するためにプロパティを作成しscoreます。

@interface GameDidEndViewController : UIViewController {

....
}
@property(nonatomic,assign) int score;
@end

(.m)@synthesize scoreにいることを確認してください。@implementation

さて、あなたが初期化してGameDidEndViewControllerあなたがスコアを設定したことを示すとき、おそらくこのようなものです。

GameDidEndViewController *end = .....// init the view.
end.score = score; // assuming you're doing this from GamePlayViewController where it has an int named `score`

お役に立てれば !

于 2012-06-25T23:10:35.783 に答える
2

ViewControllers使用間でデータを渡すためのチュートリアルを次に示しますStoryboard

  1. ストーリーボードセグエチュートリアル:ViewController間でデータを渡す
  2. 2つのViewController間でデータを渡す方法に関するチュートリアル

または次のようなものを使用します:

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

お役に立てれば。

于 2012-06-26T02:12:37.043 に答える