我是一名学生,对编程还很陌生。我正尝试在业余时间学习Objective-C/Swift语言。我使用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)
}
这适用于切换到新的视图控制器场景,但我认为以前的视图控制器仍然在堆栈中占用内存,会减慢我的程序速度。我已经在其他帖子上读到可以使用导航控制器来删除视图控制器的方法,但我没有导航控制器;只有视图控制器。我看到一些关于removeFromParentViewController()
和view.removeFromSuperview()
的东西,但我不知道如何实现它。除此之外,我没有找到我要寻找的答案。所以我的问题是怎样从堆栈中移除以前的视图控制器?任何帮助都将不胜感激!(最好使用Swift编写的帮助,但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];
}