gpt4 book ai didi

ios - swift alertview textfield - 如何检索输入的文本

转载 作者:行者123 更新时间:2023-11-28 13:19:44 26 4
gpt4 key购买 nike

我正在显示一个警报 View ,以便能够在选择书籍时对其进行重命名。我在检索用户的输入时遇到问题。

这是我的代码:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

let optionMenu = UIAlertController(title: nil, message: "Choose Option", preferredStyle: .ActionSheet)

let newBookAction = UIAlertAction(title: "Add New Book", style: .Default, handler: {
(alert: UIAlertAction!) -> Void in


var alert = UIAlertController(title: "Add New Book", message: "What is the Name of the New Book?", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil))
alert.addTextFieldWithConfigurationHandler { (textField) in
textField.placeholder = "New Book Name"
}

self.currentShelf.addNewBook(Book(bookName: self.alert.textFields[0] as String))

self.presentViewController(alert, animated: true, completion: nil)

self.tableView.reloadData()

println("Book Added")
})

let deleteAction = UIAlertAction(title: "Delete", style: .Default, handler: {
(alert: UIAlertAction!) -> Void in
self.currentShelf.allBooksOnShelf.removeAtIndex(indexPath.row)
self.tableView.reloadData()
println("Book Deleted")
})
let updateAction = UIAlertAction(title: "Update", style: .Default, handler: {
(alert: UIAlertAction!) -> Void in
println("Book Updated")
})
let readAction = UIAlertAction(title: "Read", style: .Default, handler: {
(alert: UIAlertAction!) -> Void in
if self.currentShelf.allBooksOnShelf[indexPath.row].hasBeenRead == false{
self.currentShelf.allBooksOnShelf[indexPath.row].hasBeenRead = true
var alert = UIAlertController(title: "Read Book", message: "Thanks For Reading!", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
println("Book Read")


}
else{
self.currentShelf.allBooksOnShelf[indexPath.row].hasBeenRead = false
var alert = UIAlertController(title: "Unread Book", message: "You Just UnRead A Book...", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
println("Book Unread")
}

})

let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: {
(alert: UIAlertAction!) -> Void in
println("Cancelled")
})

optionMenu.addAction(newBookAction)
optionMenu.addAction(readAction)
optionMenu.addAction(updateAction)
optionMenu.addAction(deleteAction)
optionMenu.addAction(cancelAction)

self.presentViewController(optionMenu, animated: true, completion: nil)


}

我遇到麻烦的地方是:

        let newBookAction = UIAlertAction(title: "Add New Book", style: .Default, handler: {
(alert: UIAlertAction!) -> Void in


var alert = UIAlertController(title: "Add New Book", message: "What is the Name of the New Book?", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil))
alert.addTextFieldWithConfigurationHandler { (textField) in
textField.placeholder = "New Book Name"
}

self.currentShelf.addNewBook(Book(bookName: self.alert.textFields[0] as String))

self.presentViewController(alert, animated: true, completion: nil)

self.tableView.reloadData()

println("Book Added")
})

我希望这是一个简单的修复,感谢任何帮助。谢谢!

最佳答案

您需要为该警报 Controller 添加一个完成处理程序,以获取新字符串并使用它来更新您的书名。像这样的东西:

let newBookAction = UIAlertAction(title: "Add New Book", style: .Default, handler: {
(alert: UIAlertAction!) -> Void in

var alert = UIAlertController(title: "Add New Book", message: "What is the Name of the New Book?", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil))
alert.addTextFieldWithConfigurationHandler { (textField) in
textField.placeholder = "New Book Name"
}

self.presentViewController(alert, animated: true) {
let textField = alert.textFields[0] as UITextField
self.currentShelf.addNewBook(Book(bookName: textField.text))
self.tableView.reloadData()
println("Book Added")
}
})

关于ios - swift alertview textfield - 如何检索输入的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26938366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com