Я хочу изменить текст метки.
@IBAction func renameLabel(_ sender: UIButton) {
let labelTextToBeChanged = "some text"
let changedLabelText = changeLabeltext(text: labelTextToBeChanged!)
// Do something
print("changedLabelText: \(changedLabelText)")
}
Функция changeLabeltext () содержит контроллер предупреждений, как показано ниже.Я ожидаю, что после вызова changeLabeltext (text: labelTextToBeChanged!) Появится окно с предупреждением, и после изменения текста новый текст назначается для changeLabelText и распечатывается.Однако после вызова функции выводится пустой текст, а затем, после выхода из функции IBAction, появляется окно с предупреждением.Что я делаю не так?
func changeLabeltext(text: String) -> String{
var inputTextField:UITextField?
// Create the controller
let alertController = UIAlertController(
title: "Ändere Projekt- oder Versionsname",
message: "",
preferredStyle: .alert)
// Create a textfield for input
alertController.addTextField{
(textField: UITextField!) -> Void in
textField.placeholder = text
inputTextField = textField
}
// Create the actions
let saveAction = UIAlertAction(
title: "Speichern",
style: .default,
handler: { (action: UIAlertAction!) -> Void in
inputTextField = alertController.textFields![0]
inputTextField?.text = text
})
let cancelAction = UIAlertAction(
title: "Abbruch",
style: .default,
handler: { (action: UIAlertAction!) -> Void in
})
// Add the actions to the UIAlertController
alertController.addAction(saveAction)
alertController.addAction(cancelAction)
present(alertController, animated: true, completion: nil)
return (inputTextField?.text)!
}