I'm by no means an expert but if I understand what you're trying to do, I think the approach I would take is to make an extension on UIViewController:
extension UIViewController { func notificationAlert(_ msg1: String, _ msg2: String) { // create the UIAlertAlertController // and then do as David Duncan said and do: self.present(<alert controller>, animated: <true/false> completion: …) } } Now all your UIViewController subclasses can call that method (and because it's a method, they have access to self which is a subclass of UIViewController). HTH, Dave > On Sep 30, 2019, at 11:27 PM, Doug Hardie via Cocoa-dev > <cocoa-dev@lists.apple.com> wrote: > > I tried that and swift complains that self is not defined. This is not in a > view controller but a stand alone function used in many view controllers. > Generally it is used during a segue, but I added one in a view controller to > a button action, not part of a segue and it dismissed the alert also. > > -- Doug > >> On 30 September 2019, at 19:48, David Duncan <david.dun...@apple.com> wrote: >> >> Instead of creating a new window and a root view controller in order to >> present your alert, just use (assuming self is a UIViewController) >> self.present(<alert controller>, animated: <true/false> completion: …) >> >>> On Sep 30, 2019, at 5:48 PM, Doug Hardie <bc...@lafn.org> wrote: >>> >>> Not sure how to do that. It's not in any view controller as it is used in >>> virtually all of the various view controllers. That's why I wanted it as a >>> function. >>> >>> -- Doug >>> >>>> On 30 September 2019, at 14:44, David Duncan <david.dun...@apple.com> >>>> wrote: >>>> >>>> What happens if you present it over your normal view controller hierarchy >>>> instead of using another window? >>>> >>>> Has your application adopted UIWindowScene? >>>> >>>>> On Sep 30, 2019, at 5:36 PM, Doug Hardie via Cocoa-dev >>>>> <cocoa-dev@lists.apple.com> wrote: >>>>> >>>>> I have some code that presents an alert to the user with information they >>>>> need, and an OK button to clear it. It works fine in the previous Xcode >>>>> versions. However, after upgrading to 11, it now displays the alert and >>>>> then immediately clears it. This happens both in the simulator and on a >>>>> real device. I have played around with the code and can't figure out how >>>>> to make it leave the alert on the screen. This is in Swift. It is a >>>>> function that is called from numerous places in the app. >>>>> >>>>> func NotificationAlert (_ msg1: String, _ msg2: String) { >>>>> let ErrorAlert = UIAlertController(title: msg1, message: msg2, >>>>> preferredStyle: .alert) >>>>> let dismiss = UIAlertAction(title: "Ok", style: .default, handler: nil) >>>>> ErrorAlert.addAction(dismiss) >>>>> ErrorAlert.presentInOwnWindow(animated: true, completion: nil) >>>>> } >>>>> >>>>> extension UIAlertController { >>>>> func presentInOwnWindow(animated: Bool, completion: (() -> Void)?) { >>>>> let alertWindow = UIWindow(frame: UIScreen.main.bounds) >>>>> alertWindow.rootViewController = UIViewController() >>>>> alertWindow.windowLevel = UIWindow.Level.alert + 1; >>>>> alertWindow.makeKeyAndVisible() >>>>> alertWindow.rootViewController?.present(self, animated: animated, >>>>> completion: completion) >>>>> } >>>>> } >>>>> >>>>> >>>>> -- Doug >>>>> >>>>> _______________________________________________ >>>>> >>>>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) >>>>> >>>>> Please do not post admin requests or moderator comments to the list. >>>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com >>>>> >>>>> Help/Unsubscribe/Update your Subscription: >>>>> https://lists.apple.com/mailman/options/cocoa-dev/david.duncan%40apple.com >>>>> >>>>> This email sent to david.dun...@apple.com >>>> >>> >> > > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/davelist%40mac.com > > This email sent to davel...@mac.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com