I wonder what is the right way to show custom alerts in iOS 9? My alert should have an icon with a label and one button to hide it. It is designed not in iOS style so from what I understand I can't use UIViewAlert?
The UIAlertController is just a special kind of UIViewController which gets presented by the current onscreen view controller via presentingViewController.presentViewController(alertController, animated: true, completion: ... )
It really depends on how much customization you want. If you just want to reskin the alert you may do all kinds of things with the alertController's view. It's not the nicest thing to do but here's some hints about how the alertController's view is structured (it may change)
alertController.view.subviews.firstObject (subView) alertController.view.subviews.firstObject.subviews.firstObject (alertContentView, the thing with the round corners which may be changed via .layer.cornerRadius)
You can also just create your own AlertController which extends UIViewController. You can build it in a xib file just like you would any other UIViewController & even add custom animations -- the custom alert is presented the same way: presentingViewController.presentViewController(alertController, animated: true, completion: {})
I hope this is helpful.