Prevent multiple sheet presentations

https://stackoverflow.com/questions/31754888/presentedviewcontrollers-memory-leak

XXX: weird though.
This commit is contained in:
Davide De Rosa 2021-04-10 09:15:09 +02:00
parent ecc4c6f87e
commit 7a61de9ae1
4 changed files with 10 additions and 4 deletions

View File

@ -487,6 +487,9 @@ class StatusMenu: NSObject {
@objc private func editAccountCredentials(_ sender: Any?) {
let organizer = WindowManager.shared.showOrganizer()
guard organizer?.contentViewController?.presentedViewControllers?.isEmpty ?? true else {
return
}
let accountController = StoryboardScene.Service.accountViewController.instantiate()
accountController.profile = service.activeProfile
organizer?.contentViewController?.presentAsSheet(accountController)
@ -494,6 +497,9 @@ class StatusMenu: NSObject {
@objc private func customizeProfile(_ sender: Any?) {
let organizer = WindowManager.shared.showOrganizer()
guard organizer?.contentViewController?.presentedViewControllers?.isEmpty ?? true else {
return
}
let profileCustomization = StoryboardScene.Service.profileCustomizationContainerViewController.instantiate()
profileCustomization.profile = service.activeProfile
organizer?.contentViewController?.presentAsSheet(profileCustomization)

View File

@ -92,12 +92,12 @@ class AccountViewController: NSViewController {
}
delegate?.accountController(self, didUpdateCredentials: credentials, forProfile: profile)
dismiss(self)
presentingViewController?.dismiss(self)
}
@IBAction private func delegateAndDismiss(_ sender: Any?) {
delegate?.accountControllerDidCancel(self)
dismiss(self)
presentingViewController?.dismiss(self)
}
override func cancelOperation(_ sender: Any?) {

View File

@ -169,7 +169,7 @@ class ProfileCustomizationContainerViewController: NSViewController {
}
}
dismiss(self)
presentingViewController?.dismiss(self)
}
}

View File

@ -54,6 +54,6 @@ class TrustedNetworksAddViewController: NSViewController {
return
}
delegate?.trustedController(self, didEnterSSID: ssid)
dismiss(self)
presentingViewController?.dismiss(self)
}
}