您好,我是Objective C的新手,但我遇到了问题。
我有一个View控制器,可以在其中调用游戏的level_1。
GameViewController *level1 = [self.storyboard instantiateViewControllerWithIdentifier:@"GameIdentifier"];
[self.navigationController pushViewController:level1 animated:YES];
它工作正常。
...但是我想使用相同的ViewController(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];
关于ios5 - 我如何将参数传递给从其他类调用的ViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8622434/