如何将参数传递给从其他类调用的ViewController

问题描述:

你好,我是新来的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)。

您需要将一个实例变量(以及一些访问器来获取/设置它)添加到您的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