循環参照を防ぐために、古いViewControllerを削除したいと思ったのですが、何個もViewControllerを開くため、self.dismissが使えません。
そこで、新しいViewControllerに遍移した後に、削除する方法が見当たらず、調べて、https://teratail.com/questions/147410の
swift
1if window.rootViewController?.presentedViewController != nil { 2 // モーダルを開いていたら閉じてから差し替え 3 window.rootViewController?.dismiss(animated: false) { 4 window.rootViewController = storyboard.instantiateInitialViewController() 5 } 6} else { 7 // モーダルを開いていなければそのまま差し替え 8 window.rootViewController = storyboard.instantiateInitialViewController() 9}
以上のコードを使用してみたのですが、メモリは増えなくなりましたが、遍移を繰り返していると、落ちてしまいます。
そこで、新しいViewControllerで
swift
1self.presentedViewController!.dismiss(animated: false)
を行ってみたところエラーが出てしまいました。
他に、削除する方法があればご教授ください。
回答1件
あなたの回答
tips
プレビュー