• Feed
  • Explore
  • Ranking
/
/
    🎨 UIKit & SwiftUI

    [UIKit] UITableView에서 Cell 추가/수정을 하나의 View에서 처리하기

    Swiftios
    지
    지성
    2025.02.11
    ·
    2 min read

    To Do List 앱에 새로운 할 일을 추가할 때, 내용을 입력하기 위한 View를 구현했다. 이후에 이미 추가된 할 일을 수정하는 기능을 추가하려고 보니, 기존 View를 활용하면 좋을 것 같다는 생각이 들었다.

    즉, UITableViewCell 의 데이터를 View로 전달해서 기존의 값이 입력되도록 하는 기능을 구현하고자 했다.

    1. 스토리보드에서 UITableViewCell 을 ViewController 로 직접 Segue 연결: indexPathForSelectedRow 가 nil 이 나와서 데이터 전달 실패

    해결 방안

    1. didSelectRowAt 에서 performSegue(withIdentifier:) 를 실행

      override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
          performSegue(withIdentifier: "identifier", sender: indexPath)
      }
    2. prepare(for: sender:) 에서 데이터 전달

      override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
          if segue.identifier == "identifier" {
              let destinationVC = segue.destination as? ViewController
              
              if let indexPath = sender as? IndexPath {
                  destinationVC.task = tasks[indexPath.row]  // 기존 데이터 전달
              }
          }
      }
    3. 만약 수정한 내용을 다시 UITableView 에 반영하려면 delegate 를 사용







    - 컬렉션 아티클