在一个 swift 待办事项应用程序中,有一个 UITableViewController 和一个普通的 UIViewController。在名为“AddToDoVC”的 UIViewController 中,有一个用于显示待办事项名称的文本框和一个标题标签 (viewTitle)“Add ToDo”。现在,按下添加按钮,它会保存待办事项并在“ToDos”UITableViewController 上显示名称。现在,我插入了一个名为“editAction”的 UITableViewRowAction。当在 tableView 上按下此编辑按钮时,它会转到“AddToDoVC”,我希望 viewController 稍微改变一下,以便成为编辑模式,例如,标题“Add ToDo”更改为“Edit” ToDo”,或者名称 textField 自动成为保存的 toDo 的名称(我正在使用 Realm Swift 进行保存,如果这可能有帮助的话)。现在,我该怎么做呢?这是我到目前为止所写的内容,但它总是给我错误“ fatal error :在解包可选值时意外发现 nil。”
在“ToDos”UITableViewController 中:
func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
//Edit
let editAction = UITableViewRowAction(style: UITableViewRowActionStyle.Normal, title: "Edit") {(editAction, indexPath) -> Void in
//Shows AddTaskVC when "Edit" is pressed
let editTaskVC = self.storyboard?.instantiateViewControllerWithIdentifier("addTaskVC") as! AddTaskVC
self.navigationController?.pushViewController(editTaskVC, animated: true)
//Changing the viewTitle's text from "Add Task" to "Edit Task" as it is now in an "Edit" mode -> this doesn't do anything other than give me the error "fatal error: unexpectedly found nil while unwrapping an Optional value"
editTaskVC.viewTitle.text = "Edit Task"
}
//Return edit action
return [editAction]
}
如何实现这种编辑模式?预先感谢您。
最佳答案
而不是直接为标签设置值。在 AddToDoVC
中定义一个字符串 str
并将该字符串值分配给 viewDidLoad()
中的 Label
。
当前标签的值不会被设置,因为标签没有在 View Controller 中绘制,并且您正在为其分配值。
关于ios - 如何创建按下 UITableViewRowAction 时显示的编辑模态视图 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39325118/