XCode でゲームを作成しています。このゲームには、設定条件 (「30 までプレイ」、「20 までプレイ」など) のボタンを含むメニューがあります。これらのボタンでゲームと同じセグエを作成したいのですViewController
が、唯一の違いは、ゲームが終了するまでに達成しなければならないポイントの数です。ViewController
設定ごとに同じものを複数持つのは非常に非効率的です。これを回避する方法はありますか?
質問する
100 次
1 に答える
0
ゲーム ビュー コントローラーで、次のようにカスタム イニシャライザーを作成します。
// add in GameViewController.m
@implementation GameViewController
-(id)initWithLimit:(int)limit {
self = [super initWithNibName:@"NibName" bundle:nil];
if (self) {
_limit = limit;
}
return self;
}
// add in GameViewController.h
@interface GameViewController : UIViewController
@property (nonatomic) int limit;
@end
メニューのボタン アクションを次のように実装します。
-(IBAction)play30 {
GameViewController *game = [[GameViewController alloc] initWithLimit:30];
// Handle game view here.
}
この回答は、ユーザーがボタンをタップしたときに GameViewController の新しいインスタンスを作成することを前提としています。ボタンがテープされるたびに新しい ViewControllerSubclass をインスタンス化したくない場合は、メニュー ビュー コントローラーで GameViewController プロパティを作成し、ゲーム ビュー コントローラーの遅延インスタンス化を使用できます。
- (GameViewController *)game {
if (!_game) _game = ...;
return _game;
}
-(IBAction)play20 {
// Assuming game is a property.
self.game.limit = 20;
// Perform setup that expects the limit property to be set.
[self.game setup];
// Handle game view here.
}
これが役に立ったことを願っています:)
于 2013-06-21T19:16:52.423 に答える