Bir düğme içeren bir denetleyici A'ya (UIViewController alt sınıfına) sahip olduğumu ve düğmeye bastığınızda, görünüm denetleyicisini B (alt sınıfı UIViewController) bir segue kullanarak (bu yüzden arayüz oluşturucu kullanarak bağlantı yaptım). Segue tipi Göster.Görünüm denetleyicisini yükleyin ve bir öncekini bellekten kaldırın
B görüntülendiğinde, Asla hiçbir zaman geri dönmeyeceğim, bu yüzden öldürmek, yok etmek, ezmek, sakatlamak istiyorum, böylece değerli küçük baytlar başka şeyler için kullanılabilir. (1) uygulama kök görünümü denetleyicisi değiştirilen en
class ViewControllerB: UIViewController {
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
print("Go away old view controller!!!")
appDelegate.window!.rootViewController = self // (1)
}
}
My kodu: Burada B kodu
class ViewControllerA: UIViewController {
deinit {
print("I am immortal haha I cannot die!!!")
print("This will not be displayed!!!")
}
}
: Burada
bir kodudur. Bununla birlikte, eski görüntü denetleyicisinin belleğe sızdığı görülüyor, çünkü sınırsızlığının yazdırma mesajı görüntülenmiyor.Gereksiz bir görünüm denetleyicisinin ve görünümünün kaldırılmasıyla ilgili basit görevi nasıl gerçekleştirebilirim? Teşekkürler ViewControllerA
deinitialized asla neden ViewControllerB
ViewControllerA
itibaren ViewControllerB
öylesine thats onun presentingViewController
değişkeninde ViewControllerA
güçlü bir referans tutmak sunmak çok