如何创建一个在按下UITableViewRowAction时显示的edit-mode-viewController?

时间:2016-09-05 06:44:14

标签: ios swift uitableview uiviewcontroller

在一个快速的待办事项应用中,有一个UITableViewController和一个普通的UIViewController。在名为“AddToDoVC”的UIViewController中,有一个用于todo名称的文本框和一个标题标签(viewTitle)“Add ToDo”。现在,按下添加按钮并保存toDo并在“ToDos”UIT​​ableViewController上显示名称。现在,我插入了一个名为“editAction”的UITableViewRowAction。当在tableView上按下这个编辑按钮时,它会转到“AddToDoVC”,我希望viewController更改一点,这样就成了一种编辑模式,例如,标题“Add ToDo”变为“Edit” ToDo,“或者名称textField自动成为保存的toDo的名称(我正在使用Realm Swift保存,如果这可能有帮助)。现在,我怎么能这样做?这是我到目前为止所写的内容,但它总是给我错误“致命错误:在展开可选值时意外地发现了nil。”

在“ToDos”UIT​​ableViewController中:

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]

}

如何实现这种编辑模式?提前谢谢。

1 个答案:

答案 0 :(得分:0)

而不是直接将值设置为标签。在str中定义字符串AddToDoVC,并将该字符串值分配给Label中的viewDidLoad()

当前标签的值不会被设置,因为标签没有在视图控制器中绘制,而是您要为其赋值。