2011-12-24 3 views
2

Здравствуйте, я новичок в Objective C, и у меня есть проблема. У меня есть контроллер View, откуда я называю level_1 моей игры.как я могу передать аргументы вызову ViewController из другого класса

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

Он отлично работает.

... НО Я хочу сделать два разных уровней (level_2 и level_3), используя тот же ViewController (GameViewController) (я буду называть их из того же класса), , но я не знаю, как передать аргумент (например, 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

+0

Не беспокойтесь! Удачи вам в вашей игре :) –

+1

@ user1114232 Вы должны принять ответ, если он работает – MadhavanRP

Смежные вопросы