【发布时间】:2016-10-20 18:51:05
【问题描述】:
我正在编写游戏。这是一个文字游戏。 游戏页面始终相同,内容不同。 当我使用 instantiateViewControllerWithIdentifier("SB") 时,新页面被添加到队列中。但是这样使用的内存就会变高。
如何用新页面替换旧页面?
【问题讨论】:
标签: ios swift uiviewcontroller storyboard
我正在编写游戏。这是一个文字游戏。 游戏页面始终相同,内容不同。 当我使用 instantiateViewControllerWithIdentifier("SB") 时,新页面被添加到队列中。但是这样使用的内存就会变高。
如何用新页面替换旧页面?
【问题讨论】:
标签: ios swift uiviewcontroller storyboard
您可以保留对类的引用,并在其中有一个方法来加载其中的内容。
class gameViewController : UIViewController {
func loadContent() {
// this method should refresh content everytime.
}
}
在其他类中,只要你想创建一个对前一个类的引用即可。
class SomeClass {
var referenceToGameClass : gameViewController!
func someFunc() {
self.referenceToGameClass.loadContent()
}
}
但是在离开 gameViewController 类时如何保存相同的引用呢?你可以在你的 prepareforsegue 方法中添加这一行,比如说在上面提到的“SomeClass”:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "segueID") {
let svc = segue.destinationViewController as! SomeClass
svc.referenceToGameClass = self
}
}
并且方便地,要从“SomeClass”移回相同的 gameViewController,只需使用:
self.presentViewController(self.referenceToGameClass, animated: true, completion: nil)
这可能会有点令人困惑,但如果你仔细阅读几次,你就会明白。你也可以问我问题!
【讨论】: