2011-12-24 122 views
2

你好,我是新來的Objective C,我有一個問題。 我有一個視圖控制器,我稱之爲我的遊戲level_1。如何將參數傳遞給從其他類調用的ViewController

GameViewController *level1 = [self.storyboard instantiateViewControllerWithIdentifier:@"GameIdentifier"]; 
[self.navigationController pushViewController:level1 animated:YES]; 

它工作正常。

... 我希望有兩個不同層次使用相同的視圖控制器(GameViewController)(我會打電話給他們來自同一個類), 但我不知道怎麼傳(LEVEL_2和level_3)一個參數(例如int)到GameViewController(該參數將是當前級別,例如2或3)。

回答

13

您需要將一個實例變量(以及一些訪問器來獲取/設置它)添加到您的GameViewController類中,然後爲您的「level1」或「level2」實例指定級別編號。

下面是一些示例代碼,顯示你應該怎麼寫你的GameViewController類:

// GameViewController.h 

@interface GameViewController : UIViewController 
@property (nonatomic, readwrite, assign) int level; 
@end 

// GameViewController.m 

@implementation Test 
@synthesize level; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    if (level == 1) 
    { 
     // Do something for level 1 
    } 
    else if (level == 2) 
    { 
     // Do something for level 2 
    } 
} 

@end 

然後,你需要的水平號碼傳遞到您的視圖控制器:

GameViewController *level1 = [self.storyboard instantiateViewControllerWithIdentifier:@"GameIdentifier"]; 
level1.level = 1; 
[self.navigationController pushViewController:level1 animated:YES]; 
+0

感謝盧克,有用!!!! – user1114232 2011-12-24 04:13:19

+0

不用擔心!祝你好運與你的遊戲:) – 2011-12-24 04:19:38

+1

@ user1114232你應該接受答案,如果它的作品 – MadhavanRP 2011-12-24 06:02:37

相關問題