2017-04-03 4 views
0

Ich habe ein Problem mit einem UIAlertController, es wird nicht mit einer Hintergrundfarbe richtig angezeigt ... Können Sie mir helfen? DieseUIAlertAction Hintergrundfarbe

ist der Code:

let alert = UIAlertController(title: "Choose qty", message: "", preferredStyle: UIAlertControllerStyle.alert) 
let pickerController = PickerQtyController() 
alert.setValue(pickerController, forKey: "contentViewController") 
// Testing color 
alert.view.tintColor=UIColor.blue 
let backView = alert.view.subviews.last?.subviews.last 
backView?.layer.cornerRadius = 10.0 
backView?.backgroundColor = UIColor.blue 
// Btns 
let saveBtn = UIAlertAction(title: "Save", style: UIAlertActionStyle.default) { 
    UIAlertAction in 
    print("UIAlertController: Saved") 
    pickerController.saveNewValueOfPicker() 
} 
let cancelBtn = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel) { 
    UIAlertAction in 
    print("UIAlertController: Canceled") 
} 
alert.addAction(saveBtn) 
alert.addAction(cancelBtn) 
self.present(alert, animated: true) 

Thank you!

+1

Verwenden Sie einen UIAlertController nicht so missbrauchen. Erstellen Sie eine Ansicht und präsentieren Sie sie über einen benutzerdefinierten Ansichtscontroller. – matt

Antwort

2

Es ist hässlich und falsch Design. Sie sollten einen benutzerdefinierten View-Controller erstellen und Ihren Pick-Controller hinzufügen. Ändern Sie den Hintergrund in "transparent" und legen Sie den modalen Darstellungsstil auf den aktuellen Kontext fest, um den benutzerdefinierten Darstellungs-Controller anzuzeigen.

self.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext 
Verwandte Themen