From 31e0a4f888180c71fb4c8a869d837339f716e1e1 Mon Sep 17 00:00:00 2001 From: Alexander Kukoba Date: Sun, 9 Apr 2023 15:47:56 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D1=82=D0=BA=D0=B0?= =?UTF-8?q?=20=D1=8F=D1=87=D0=B5=D0=B9=D0=BA=D0=B8=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B8=20=D0=BE?= =?UTF-8?q?=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AppTasks.xcodeproj/project.pbxproj | 8 +++ AppTasks/TaskTableViewCell.swift | 50 ++++++++++++++ AppTasks/TaskTableViewCell.xib | 91 +++++++++++++++++++++++++ AppTasks/TasksTableViewController.swift | 17 +++-- 4 files changed, 157 insertions(+), 9 deletions(-) create mode 100644 AppTasks/TaskTableViewCell.swift create mode 100644 AppTasks/TaskTableViewCell.xib diff --git a/AppTasks.xcodeproj/project.pbxproj b/AppTasks.xcodeproj/project.pbxproj index 8e6a04f..1630e8f 100644 --- a/AppTasks.xcodeproj/project.pbxproj +++ b/AppTasks.xcodeproj/project.pbxproj @@ -13,6 +13,8 @@ 81125F5D29E2CA7000F83D0E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 81125F5C29E2CA7000F83D0E /* Assets.xcassets */; }; 81125F6029E2CA7000F83D0E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81125F5E29E2CA7000F83D0E /* LaunchScreen.storyboard */; }; 81125F6A29E2CE6200F83D0E /* TasksTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81125F6929E2CE6200F83D0E /* TasksTableViewController.swift */; }; + 81125F7329E2E8D000F83D0E /* TaskTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81125F7129E2E8D000F83D0E /* TaskTableViewCell.swift */; }; + 81125F7429E2E8D000F83D0E /* TaskTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 81125F7229E2E8D000F83D0E /* TaskTableViewCell.xib */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -24,6 +26,8 @@ 81125F5F29E2CA7000F83D0E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 81125F6129E2CA7000F83D0E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 81125F6929E2CE6200F83D0E /* TasksTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TasksTableViewController.swift; sourceTree = ""; }; + 81125F7129E2E8D000F83D0E /* TaskTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TaskTableViewCell.swift; sourceTree = ""; }; + 81125F7229E2E8D000F83D0E /* TaskTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TaskTableViewCell.xib; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -71,6 +75,8 @@ 81125F6F29E2D28F00F83D0E /* TaskCell */ = { isa = PBXGroup; children = ( + 81125F7129E2E8D000F83D0E /* TaskTableViewCell.swift */, + 81125F7229E2E8D000F83D0E /* TaskTableViewCell.xib */, ); name = TaskCell; sourceTree = ""; @@ -141,6 +147,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 81125F7429E2E8D000F83D0E /* TaskTableViewCell.xib in Resources */, 81125F6029E2CA7000F83D0E /* LaunchScreen.storyboard in Resources */, 81125F5D29E2CA7000F83D0E /* Assets.xcassets in Resources */, 81125F5B29E2CA6F00F83D0E /* Main.storyboard in Resources */, @@ -154,6 +161,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 81125F7329E2E8D000F83D0E /* TaskTableViewCell.swift in Sources */, 81125F6A29E2CE6200F83D0E /* TasksTableViewController.swift in Sources */, 81125F5429E2CA6F00F83D0E /* AppDelegate.swift in Sources */, 81125F5629E2CA6F00F83D0E /* SceneDelegate.swift in Sources */, diff --git a/AppTasks/TaskTableViewCell.swift b/AppTasks/TaskTableViewCell.swift new file mode 100644 index 0000000..b92c360 --- /dev/null +++ b/AppTasks/TaskTableViewCell.swift @@ -0,0 +1,50 @@ +// +// TaskTableViewCell.swift +// AppTasks +// +// Created by Александр Кукоба on 09.04.2023. +// + +import UIKit + +class TaskTableViewCell: UITableViewCell { + + //MARK: Properies + var taskEditable: Bool = false + + //MARK: IBOutlets + @IBOutlet weak var taskLabel: UILabel! + + @IBOutlet weak var taskCount: UILabel! + + @IBOutlet weak var taskEdit: UITextField! + + @IBOutlet weak var taskBtnSave: UIButton! + //MARK: Button action + @IBAction func taskSave(_ sender: UIButton) { + } + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + + if (taskEditable) { + taskLabel.isHidden = true + taskCount.isHidden = true + taskEdit.isHidden = false + taskBtnSave.isHidden = false + } + else + { + taskLabel.isHidden = false + taskCount.isHidden = false + taskEdit.isHidden = true + taskBtnSave.isHidden = true + } + } + +} diff --git a/AppTasks/TaskTableViewCell.xib b/AppTasks/TaskTableViewCell.xib new file mode 100644 index 0000000..0b920e0 --- /dev/null +++ b/AppTasks/TaskTableViewCell.xib @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AppTasks/TasksTableViewController.swift b/AppTasks/TasksTableViewController.swift index 831d84d..5804cce 100644 --- a/AppTasks/TasksTableViewController.swift +++ b/AppTasks/TasksTableViewController.swift @@ -39,15 +39,14 @@ class TasksTableViewController: UITableViewController { override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { -// guard let cell = tableView.dequeueReusableCell(withIdentifier: "TaskCell", for: indexPath) as? TaskTableViewCell else { -// return UITableViewCell() -// } -// cell.taskEditable = true -// cell.taskLabel.text = "Тест" -// cell.taskCount.text = "Кол-во" -// -// return cell - return UITableViewCell() + guard let cell = tableView.dequeueReusableCell(withIdentifier: "TaskCell", for: indexPath) as? TaskTableViewCell else { + return UITableViewCell() + } + cell.taskEditable = false + cell.taskLabel.text = "Тест" + cell.taskCount.text = "Кол-во" + + return cell } /* From a000b087711fa51a31770b0ca93f829eb9a041dc Mon Sep 17 00:00:00 2001 From: Alexander Kukoba Date: Sun, 9 Apr 2023 16:34:28 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D1=8C=20=D0=B7=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D1=87=D0=B8=20=D0=B8=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87?= =?UTF-8?q?=D0=B8=20=D0=B2=20=D0=BC=D0=B0=D1=81=D1=81=D0=B8=D0=B2=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D1=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AppTasks.xcodeproj/project.pbxproj | 24 +++++++++---- AppTasks/Task.swift | 36 ++++++++++++++++++++ AppTasks/TaskTableViewCell.swift | 45 ++++++++++++++++++------- AppTasks/TaskTableViewCell.xib | 2 +- AppTasks/TasksTableViewController.swift | 28 +++++++++------ 5 files changed, 106 insertions(+), 29 deletions(-) create mode 100644 AppTasks/Task.swift diff --git a/AppTasks.xcodeproj/project.pbxproj b/AppTasks.xcodeproj/project.pbxproj index 1630e8f..251acea 100644 --- a/AppTasks.xcodeproj/project.pbxproj +++ b/AppTasks.xcodeproj/project.pbxproj @@ -15,6 +15,7 @@ 81125F6A29E2CE6200F83D0E /* TasksTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81125F6929E2CE6200F83D0E /* TasksTableViewController.swift */; }; 81125F7329E2E8D000F83D0E /* TaskTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81125F7129E2E8D000F83D0E /* TaskTableViewCell.swift */; }; 81125F7429E2E8D000F83D0E /* TaskTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 81125F7229E2E8D000F83D0E /* TaskTableViewCell.xib */; }; + 81125F7729E2EC3600F83D0E /* Task.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81125F7629E2EC3600F83D0E /* Task.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -28,6 +29,7 @@ 81125F6929E2CE6200F83D0E /* TasksTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TasksTableViewController.swift; sourceTree = ""; }; 81125F7129E2E8D000F83D0E /* TaskTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TaskTableViewCell.swift; sourceTree = ""; }; 81125F7229E2E8D000F83D0E /* TaskTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TaskTableViewCell.xib; sourceTree = ""; }; + 81125F7629E2EC3600F83D0E /* Task.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Task.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -62,8 +64,9 @@ children = ( 81125F5329E2CA6F00F83D0E /* AppDelegate.swift */, 81125F5529E2CA6F00F83D0E /* SceneDelegate.swift */, - 81125F7029E2D29C00F83D0E /* TaskContoller */, - 81125F6F29E2D28F00F83D0E /* TaskCell */, + 81125F7029E2D29C00F83D0E /* Controller */, + 81125F7529E2EC0300F83D0E /* Model */, + 81125F6F29E2D28F00F83D0E /* Cell */, 81125F5929E2CA6F00F83D0E /* Main.storyboard */, 81125F5C29E2CA7000F83D0E /* Assets.xcassets */, 81125F5E29E2CA7000F83D0E /* LaunchScreen.storyboard */, @@ -72,21 +75,29 @@ path = AppTasks; sourceTree = ""; }; - 81125F6F29E2D28F00F83D0E /* TaskCell */ = { + 81125F6F29E2D28F00F83D0E /* Cell */ = { isa = PBXGroup; children = ( 81125F7129E2E8D000F83D0E /* TaskTableViewCell.swift */, 81125F7229E2E8D000F83D0E /* TaskTableViewCell.xib */, ); - name = TaskCell; + name = Cell; sourceTree = ""; }; - 81125F7029E2D29C00F83D0E /* TaskContoller */ = { + 81125F7029E2D29C00F83D0E /* Controller */ = { isa = PBXGroup; children = ( 81125F6929E2CE6200F83D0E /* TasksTableViewController.swift */, ); - name = TaskContoller; + name = Controller; + sourceTree = ""; + }; + 81125F7529E2EC0300F83D0E /* Model */ = { + isa = PBXGroup; + children = ( + 81125F7629E2EC3600F83D0E /* Task.swift */, + ); + name = Model; sourceTree = ""; }; /* End PBXGroup section */ @@ -163,6 +174,7 @@ files = ( 81125F7329E2E8D000F83D0E /* TaskTableViewCell.swift in Sources */, 81125F6A29E2CE6200F83D0E /* TasksTableViewController.swift in Sources */, + 81125F7729E2EC3600F83D0E /* Task.swift in Sources */, 81125F5429E2CA6F00F83D0E /* AppDelegate.swift in Sources */, 81125F5629E2CA6F00F83D0E /* SceneDelegate.swift in Sources */, ); diff --git a/AppTasks/Task.swift b/AppTasks/Task.swift new file mode 100644 index 0000000..e36f497 --- /dev/null +++ b/AppTasks/Task.swift @@ -0,0 +1,36 @@ +// +// Task.swift +// AppTasks +// +// Created by Александр Кукоба on 09.04.2023. +// + +import Foundation + +class Task { + + //MARK: Properies + var text: String = "" + var taskEditable: Bool = false + private var tasks: [Task] = [] + + //MARK: Init + init(_ text: String, _ taskEditable: Bool) { + self.text = text + self.taskEditable = taskEditable + } + + //MARK: Methods + func taskCount() -> Int { + return tasks.count + } + + func addTask(_ task: Task) { + tasks.append(task) + } + + func getTasks() -> [Task] { + return tasks + } + +} diff --git a/AppTasks/TaskTableViewCell.swift b/AppTasks/TaskTableViewCell.swift index b92c360..ffcaaaa 100644 --- a/AppTasks/TaskTableViewCell.swift +++ b/AppTasks/TaskTableViewCell.swift @@ -7,10 +7,13 @@ import UIKit + class TaskTableViewCell: UITableViewCell { //MARK: Properies var taskEditable: Bool = false + var task: Task! + var index: Int! //MARK: IBOutlets @IBOutlet weak var taskLabel: UILabel! @@ -20,31 +23,49 @@ class TaskTableViewCell: UITableViewCell { @IBOutlet weak var taskEdit: UITextField! @IBOutlet weak var taskBtnSave: UIButton! + + var closure: ((Task, Int) -> ())? + //MARK: Button action @IBAction func taskSave(_ sender: UIButton) { + task.text = taskEdit.text ?? "" + task.taskEditable = false + closure?(task, index) } override func awakeFromNib() { super.awakeFromNib() // Initialization code } - + override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) - - if (taskEditable) { - taskLabel.isHidden = true - taskCount.isHidden = true - taskEdit.isHidden = false - taskBtnSave.isHidden = false + } + + func configure(_ task: Task, _ index: Int) { + self.task = task + self.index = index + + self.taskEditable = task.taskEditable + self.taskLabel.text = task.text + self.taskCount.text = String(task.taskCount()) + + self.setDisplay(task) + } + + func setDisplay(_ task: Task){ + if (task.taskEditable) { + self.taskLabel.isHidden = true + self.taskCount.isHidden = true + self.taskEdit.isHidden = false + self.taskBtnSave.isHidden = false } else { - taskLabel.isHidden = false - taskCount.isHidden = false - taskEdit.isHidden = true - taskBtnSave.isHidden = true + self.taskLabel.isHidden = false + self.taskCount.isHidden = false + self.taskEdit.isHidden = true + self.taskBtnSave.isHidden = true } } - } diff --git a/AppTasks/TaskTableViewCell.xib b/AppTasks/TaskTableViewCell.xib index 0b920e0..4290c55 100644 --- a/AppTasks/TaskTableViewCell.xib +++ b/AppTasks/TaskTableViewCell.xib @@ -36,7 +36,7 @@ - + diff --git a/AppTasks/TasksTableViewController.swift b/AppTasks/TasksTableViewController.swift index 5804cce..2bb66ac 100644 --- a/AppTasks/TasksTableViewController.swift +++ b/AppTasks/TasksTableViewController.swift @@ -8,32 +8,36 @@ import UIKit class TasksTableViewController: UITableViewController { + + var tasks: [Task] = [] + override func viewDidLoad() { super.viewDidLoad() - // Uncomment the following line to preserve selection between presentations - // self.clearsSelectionOnViewWillAppear = false + tasks.append(Task("test 1", false)) + tasks.append(Task("test 2", false)) + tasks.append(Task("test 3", false)) self.tableView.register(UINib(nibName: "TaskTableViewCell", bundle: nil), forCellReuseIdentifier: "TaskCell") } //MARK: Button actions @IBAction func addNewTask(_ sender: UIBarButtonItem) { - + let task = Task("", true); + tasks.append(task) + tableView.reloadData() } // MARK: - Table view data source override func numberOfSections(in tableView: UITableView) -> Int { - // #warning Incomplete implementation, return the number of sections return 1 } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - // #warning Incomplete implementation, return the number of rows - return 2 + return tasks.count } @@ -42,10 +46,14 @@ class TasksTableViewController: UITableViewController { guard let cell = tableView.dequeueReusableCell(withIdentifier: "TaskCell", for: indexPath) as? TaskTableViewCell else { return UITableViewCell() } - cell.taskEditable = false - cell.taskLabel.text = "Тест" - cell.taskCount.text = "Кол-во" - + + cell.configure(tasks[indexPath.row], indexPath.row) + + cell.closure = {[weak self] t, index in + self?.tasks[index].taskEditable = t.taskEditable + self?.tableView.reloadData() + } + return cell } From 7fcf04e6b4d0218c39f31ae0c7782e5834892077 Mon Sep 17 00:00:00 2001 From: Alexander Kukoba Date: Sun, 9 Apr 2023 17:57:18 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=8F=D0=B7=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20=D0=BF=D1=83=D0=BD=D0=BA=D1=82=20=D0=94=D0=97=20?= =?UTF-8?q?=D0=B3=D0=BE=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AppTasks/Base.lproj/Main.storyboard | 6 +- AppTasks/TaskTableViewCell.swift | 7 +- AppTasks/TasksTableViewController.swift | 98 +++++++++++++++++-------- 3 files changed, 76 insertions(+), 35 deletions(-) diff --git a/AppTasks/Base.lproj/Main.storyboard b/AppTasks/Base.lproj/Main.storyboard index 074b663..cb087c7 100644 --- a/AppTasks/Base.lproj/Main.storyboard +++ b/AppTasks/Base.lproj/Main.storyboard @@ -7,10 +7,10 @@ - + - + @@ -30,7 +30,7 @@ - + diff --git a/AppTasks/TaskTableViewCell.swift b/AppTasks/TaskTableViewCell.swift index ffcaaaa..e33b0c6 100644 --- a/AppTasks/TaskTableViewCell.swift +++ b/AppTasks/TaskTableViewCell.swift @@ -29,7 +29,6 @@ class TaskTableViewCell: UITableViewCell { //MARK: Button action @IBAction func taskSave(_ sender: UIButton) { task.text = taskEdit.text ?? "" - task.taskEditable = false closure?(task, index) } @@ -50,10 +49,10 @@ class TaskTableViewCell: UITableViewCell { self.taskLabel.text = task.text self.taskCount.text = String(task.taskCount()) - self.setDisplay(task) + self.display(task) } - func setDisplay(_ task: Task){ + func display(_ task: Task){ if (task.taskEditable) { self.taskLabel.isHidden = true self.taskCount.isHidden = true @@ -68,4 +67,6 @@ class TaskTableViewCell: UITableViewCell { self.taskBtnSave.isHidden = true } } + + } diff --git a/AppTasks/TasksTableViewController.swift b/AppTasks/TasksTableViewController.swift index 2bb66ac..fd2b77c 100644 --- a/AppTasks/TasksTableViewController.swift +++ b/AppTasks/TasksTableViewController.swift @@ -8,16 +8,24 @@ import UIKit class TasksTableViewController: UITableViewController { - + //MARK: Properties + var task: Task? + var index: Int? + var tasks: [Task] = [] + var closure: (() -> ())? + + //MARK: Lifecycle override func viewDidLoad() { super.viewDidLoad() - tasks.append(Task("test 1", false)) - tasks.append(Task("test 2", false)) - tasks.append(Task("test 3", false)) + self.navigationItem.title = task?.text ?? "Задачи" + + if (self.task != nil) { + self.tasks = task!.getTasks() + } self.tableView.register(UINib(nibName: "TaskTableViewCell", bundle: nil), forCellReuseIdentifier: "TaskCell") } @@ -50,47 +58,70 @@ class TasksTableViewController: UITableViewController { cell.configure(tasks[indexPath.row], indexPath.row) cell.closure = {[weak self] t, index in - self?.tasks[index].taskEditable = t.taskEditable - self?.tableView.reloadData() + guard let self = self else { + return + } + if (t.text.isEmpty) { + self.showErrorAlert() + } + else + { + t.taskEditable = false + self.tasks[index] = t + if (self.task != nil) + { + self.task!.addTask(t) + self.closure?() + } + self.tableView.reloadData() + } } return cell } - /* + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + + let task = tasks[indexPath.row] + + if (!task.taskEditable) { + let vc: TasksTableViewController = UIStoryboard(name: "Main", bundle: nil) + .instantiateViewController(withIdentifier: "TasksTableViewController") as! TasksTableViewController + vc.task = tasks[indexPath.row] + vc.closure = {[weak self] in + guard let self = self else { + return + } + self.tableView.reloadData() + } + self.navigationController?.pushViewController(vc, animated: true) + + } + } + + // Override to support conditional editing of the table view. override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { - // Return false if you do not want the specified item to be editable. - return true +// if (tasks[indexPath.row].taskEditable) { +// return false +// } +// else { + return true + //} } - */ - - /* + + // Override to support editing the table view. override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) { if editingStyle == .delete { - // Delete the row from the data source + tasks.remove(at: indexPath.row) tableView.deleteRows(at: [indexPath], with: .fade) + } else if editingStyle == .insert { // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view } } - */ - - /* - // Override to support rearranging the table view. - override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) { - - } - */ - - /* - // Override to support conditional rearranging of the table view. - override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool { - // Return false if you do not want the item to be re-orderable. - return true - } - */ + /* // MARK: - Navigation @@ -101,5 +132,14 @@ class TasksTableViewController: UITableViewController { // Pass the selected object to the new view controller. } */ + + func showErrorAlert() { + let alertController = UIAlertController(title: "Ошибка", message: "Введите текст задачи", preferredStyle: .alert) + let action1 = UIAlertAction(title: "ОК", style: .default) { action in + self.dismiss(animated: true) + } + alertController.addAction(action1) + present(alertController, animated: true) + } } From 5cf147e7a5f6eb3ccf0394d1afde9e16c821df99 Mon Sep 17 00:00:00 2001 From: Alexander Kukoba Date: Sun, 9 Apr 2023 21:08:29 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=B7=D0=B0=D0=B1=D1=8B=D0=BB=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20?= =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=82=D0=B0?= =?UTF-8?q?=D1=81=D0=BA=D0=BE=D0=B2=20=D0=B8=20=D0=BE=D0=B1=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B3=D0=BB=D0=B0=D0=B2?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=82=D0=B0=D1=81=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AppTasks/Task.swift | 5 ++++- AppTasks/TasksTableViewController.swift | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/AppTasks/Task.swift b/AppTasks/Task.swift index e36f497..00eb1bf 100644 --- a/AppTasks/Task.swift +++ b/AppTasks/Task.swift @@ -28,9 +28,12 @@ class Task { func addTask(_ task: Task) { tasks.append(task) } - + func deleteTask(_ index: Int) { + self.tasks.remove(at: index) + } func getTasks() -> [Task] { return tasks } + } diff --git a/AppTasks/TasksTableViewController.swift b/AppTasks/TasksTableViewController.swift index fd2b77c..adc16a5 100644 --- a/AppTasks/TasksTableViewController.swift +++ b/AppTasks/TasksTableViewController.swift @@ -70,7 +70,7 @@ class TasksTableViewController: UITableViewController { self.tasks[index] = t if (self.task != nil) { - self.task!.addTask(t) + self.task?.addTask(t) self.closure?() } self.tableView.reloadData() @@ -116,6 +116,11 @@ class TasksTableViewController: UITableViewController { if editingStyle == .delete { tasks.remove(at: indexPath.row) tableView.deleteRows(at: [indexPath], with: .fade) + if (self.task != nil) + { + self.task?.deleteTask(indexPath.row) + self.closure?() + } } else if editingStyle == .insert { // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view