ios - 如何执行动作而不触发segue?
问题描述
我创建了一个从视图控制器 A(任务视图控制器)到视图控制器 B(添加任务视图控制器)的 segue,它是通过视图控制器 A 中的按钮(添加)触发的。
我有一个问题:如果我想更详细地创建任务,我将点击按钮以显示视图控制器 B,然后点击视图控制器 B 上的保存完成!
但是当我想通过UITextField
按钮添加旁边的文本快速创建任务时。然后点击 Button 并在没有当前 View Controller B 的情况下创建任务。
这是我与连接检查器的故事板:连接
我尝试添加 if 语句(在注释代码中)但不工作
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard let identifier = segue.identifier else {return}
switch identifier {
case Segue.addTaskVC:
// if let taskTitle = inputTF.text, !taskTitle.isEmpty {
// // Create Task
// let task = Task(context: coreDataManager.managedObjectContext)
//
// // Configure Task
// task.updatedAt = Date()
// task.createdAt = Date()
// task.title = taskTitle
//
// updateView()
// return
// }
guard let destionation = segue.destination as? AddTaskVC else {return}
// Configure Context
destionation.managedObjectContext = coreDataManager.managedObjectContext
default:
break
}
}
这是我的动作与segue有关
@IBAction func addTaskButtonWasPressed(_ sender: Any) {
print("add Task Button Was Pressed")
// **Save quickly here**
}
有没有办法快速保存并防止触发segue?
解决方案
- 实施
shouldPerformSegue(withIdentifier:sender:)
false
如果文本字段中有文本则返回- 还要检查文本字段中
addTaskButtonWasPressed
是否有文本。如果是,保存任务。
推荐阅读
- amazon-web-services - 在 EMR 上安装应用程序后在所有节点上运行脚本
- azure - 为什么 Azure Synapse 将存储节点大小限制为 60?
- uwp - UWP 应用程序在 Windows 10 中查找结果的图标/磁贴的来源是什么?
- python - 页面没有重定向并且 db.session.add() 和 db.session.commit() 命令不起作用
- python - 在 Django admin 中,如何在将另一个相关模型字段添加到“Tədris”模型时隐藏它?
- sql - SQL 过程按给定百分比计算列
- cpanel - 跟踪从 cPanel 终端对系统的访问
- abp - 使用带有 abp 的 ocelot 时如何将租户 ID 发送到下游服务
- javascript - 如何使用javascript将excel中的工作表保存为新的excel文件
- javascript - 无法从主动选择反应参数传递多选复选框值