Я очень новичок в разработке iOS, поэтому, пожалуйста, простите меня, если я спрошу что-то глупое.iOS: отобразите новую сцену после нажатия кнопки alertView
Таким образом, в одной сцене (скажем, S1) после нажатия кнопки alertView будет отображаться два варианта: YES и No. После того, как вы нажмете YES и отпустите alertView, я хочу отобразить новую сцену (S2), а не вернуться к исходному S1.
Что я пытался, я перетащил ViewController (S2) в раскадровку и добавил в проект новый файл (cocca touch class -> подкласс UIViewController) (например, s2controller.h и s2controller.m). Затем я выбрал новую сцену S2 в раскадровке и в инспекторе идентификации меняю свой класс на s2controller. Затем я добавил несколько кнопок в S2, чтобы не пустая сцена. И я вернулся в S1controller.m файл и импорта s2controller.h и добавьте следующий код:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
// YES button is clicked
if (buttonIndex == 1) {
// Push the view controller.
S2Controller *s2 = [[S2Controller alloc] init];
[self.navigationController pushViewController:s2 animated:YES];
NSLog(@"Push new scene successful.");
}
else{
// do something
}
}
Там не было никакой ошибки компиляции. Когда я тестировал его с помощью симулятора, после того, как я нажал «ДА» из alertView, экран стал черным, но я вижу, что панель навигации все еще там. Я могу нажать кнопку возврата на панели навигации, чтобы вернуться к сцене S1. Мой вопрос: могу ли я исправить это, добавив или отредактировав какой-то код, или это вся идея не так с самого начала?
ps: Я использую только раскадровку для создания всех сцен, у меня нет файла nib в проекте.
ps2: обе сцены S1 и S2 есть контроллер навигации встроенный.
Большое спасибо, это определенно помогает! –