Я новичок в iOS разработке и мне нужна ваша помощь.
Я использую UITableView для создания таблицы задач. Данные задач передаются из базы данных Firebase. Когда я нажимаю кнопку в ячейке задачи, открывается модальное всплывающее окно (в том же ViewController с помощью метода animate).
Я хочу получить доступ к элементам модального всплывающего окна, чтобы передать данные указанного c задача из базы данных в ее модальное окно.
У меня есть файл TaskViewCell со всеми выходами элементов ячейки, такими как previewTitleLabel, previewMotivLabel et c.
Файл TasksListScreen:
import UIKit
import Firebase
import FirebaseAuth
import FirebaseFirestore
class TasksListScreen: UIViewController {
var db = Firestore.firestore()
var tasksArray = [Task]() // array of tasks using Task struct
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var centerPopupConstraint: NSLayoutConstraint!
@IBOutlet weak var backgroundButton: UIButton!
// show popup
@IBAction func yesButtonTapped(_ sender: Any) {
centerPopupConstraint.constant = 0 // popup appear
// add slide animation for popup
UIView.animate(withDuration: 0.3, animations: {
self.view.layoutIfNeeded()
self.backgroundButton.alpha = 0.5
})
}
// done button on popup is clicked
@IBAction func closePopup(_ sender: Any) {
centerPopupConstraint.constant = -450 // popup disappear
// add slide animation for popup
UIView.animate(withDuration: 0.1, animations: {
self.view.layoutIfNeeded()
self.backgroundButton.alpha = 0
})
}
}
extension TasksListScreen: UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return tasksArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "taskCell") as! TaskViewCell
let task = tasksArray[indexPath.row]
cell.previewTitleLabel.text = task.title
cell.previewMotivLabel.text = task.tip
cell.previewHashtagsLabel.text = task.hashtags
// Here I want to access task's modal window to pass data to its elements:
// the same task title and task description form database
}}
Пожалуйста, помогите !!
Раскадровка TasksListScreen с модальным всплывающим окном
Иерархия файлов view и TasksListScreen раскадровка
Внешний вид приложения