Я студент и довольно новичок в программировании. Я пытаюсь научиться Objective-C/Swift в свободное время. Я сделал игру, используя spriteKit с быстрым, который имеет несколько меню/сцен.
Я пытаюсь перейти от одного контроллера представления к другому. Для этого я использовал этот код:
@IBAction func PlayButtonPressed(sender: AnyObject) {
let playStoryboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc : UIViewController = playStoryboard.instantiateViewControllerWithIdentifier("playGame") as UIViewController
self.presentViewController(vc, animated: true, completion: nil)
}
Это работает для перехода на новую сцену VC, однако, я считаю, что предыдущий VC все еще находится в стеке и занимает память, замедляя мою программу.
Я прочитал несколько других сообщений, которые вы можете использовать навигационным контроллером для удаления VC. Однако у меня нет контроллера навигации; только контроллеры просмотра. Я видел кое-что о removeFromParentViewController()
и view.removeFromSuperview()
, но я действительно не знаю, как его реализовать. Кроме этого, я не нашел ответа, который я искал.
Итак, вопрос, который я задаю, заключается в том, как удалить предыдущий VC из стека? Любая помощь будет оценена! (предпочел бы, чтобы помощь была быстрой, но Objective-C тоже помогла бы). Спасибо заранее!
Примечание для справки: Я верю в Objective-C, мой код будет выглядеть примерно так:
-(IBAction) PlayButtonPressed: (id) sender {
UIStoryboard *playStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc = [playStoryboard instantiateViewControllerWithIdentifier:@"playGame"];
[self presentViewController:vc animated:YES completion:nil];
}