2015-01-04 3 views
0

Так что я действительно борюсь с выяснением способа переключения сцен нажатием кнопки. В принципе, я хочу создать кнопку «Начать игру». Есть много ответов Google, и никто из них, похоже, не помогает. Либо синтаксическая ошибка, либо приложение вылетает. Во всяком случае, вот что я собираюсь. У меня есть gameviewcontroller, который правильно делает мою кнопку, и он успешно обменивается данными с методом при нажатии кнопки (например, для печати символа на консоль). Теперь в моем Title.m (сцена, я начинаю в), у меня есть метод, как так:Кнопка для переключения сцен при нажатии

-(void) gScene { 
    GameScene* gameScene = [[GameScene alloc] initWithSize:self.size]; 
    [self.view presentScene:gameScene]; 
} 

У меня также есть метод в моем Title.h, который импортируется в GameViewController. В моем GameViewController метод, связанный с нажатием кнопки, называется startGame. Это то, что выглядит как StartGame:

-(void)startGame { 
    Title* title = [[Title alloc] init]; 
    [title gScene]; 
} 

Я хочу, на нажатие кнопки, для сцены, чтобы перейти от моего Заголовок к моей GameScene. Что я делаю не так?

+0

Вы должны инициализировать контроллер вида с помощью интерфейса. Вы используете перья или раскадровки? –

ответ

0

При использовании крупка:

GameScene *vc = [[GameScene alloc] init]; 
[self presentViewController:vc animated:YES completion:nil]; 

При использовании раскадровки:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YOUR_STORYBOARD_NAME" bundle:nil]; 
GameScene *vc = [storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER_OF_IB_VC"]; 
[self presentViewController:vc animated:YES completion:nil]; 

Если программно создавать сцены: (Apple Documentation)

UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    levelViewController = [[LevelViewController alloc] init]; 
    window.rootViewController = levelViewController; 
    [window makeKeyAndVisible]; 

Ваш вопрос лежит в «self.size «код, который вы используете для установки границ фрейма. Третий пример должен помочь вам. rs

+0

Я все программировал. Я не использовал ниб или раскадровку. Я ценю ответ, но все равно немного потерял. –

+0

Благодарим вас за ответ, но я до сих пор не знаю, как применить программно созданный код сцены, который вы опубликовали. Могу ли я поместить этот код (вернее, код, похожий на его проект) в метод gScene, или я должен поместить его в метод startGame и полностью отказаться от метода gScene? Это то, что я пытаюсь: UIWindow * window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen])]; levelViewController = [[Title alloc] init]; window.rootViewController = levelViewController; [окно makeKeyAndVisible]; –

+0

Извините за форматирование выше, ctrl k (или эквивалент mac или команда k) не работает по какой-либо причине. во всяком случае, я пытаюсь это и сталкиваются с проблемами: этот levelViewController является незаявленным идентификатором, а Title - несовместимыми типами с UIViewController. Я заменяю Title GameViewController из любопытства и той же проблемы. Я не уверен, как применять ваш код, и я прочитал документацию. –

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