meal cell 클릭시 화면 이동 문제
379
작성한 질문수 4
meal cell 클릭 -> 아무 변화 없음
다시 클릭 -> 이전에 클릭했던 meal cell의 정보가 Detail VC에 출력됩니다.
예를 들면 스파게티를 클릭하면 아무 변화가 없습니다. 그러나 그 다음 케밥이나 파스타를 클릭하면 스파게티 화면이 출력됩니다.
아래는 코드 전문입니다.
//
// ViewController.swift
// foodMaker2
//
// Created by Choi Joon on 2021/02/26.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var myTF: UITableView!
var mealLists = [MealModel]()
override func viewDidLoad() {
super.viewDidLoad()
//xib파일을 만들었으면 이렇게 따로 등록을 해줘야함.
//nilName에는 파일명을 적고 forCellReuseIdentifier에는 identifier를 적는다.
myTF.register(UINib(nibName: "MealCell", bundle: nil), forCellReuseIdentifier: "mealCell")
//더미데이터를 생성 : 해당 데이터들을 MealModel에 넣음
let dummy1 = MealModel.init(name: "스파게티", photo: UIImage(named: "meal1"), rating: 3)
//리스트에 추가
mealLists.append(dummy1)
let dummy2 = MealModel.init(name: "케밥", photo: UIImage(named: "meal2"), rating: 4)
mealLists.append(dummy2)
let dummy3 = MealModel.init(name: "파스타", photo: UIImage(named: "meal3"), rating: 5)
mealLists.append(dummy3)
}
//segue가 작동될때 호출되는 함수
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
//segue의 종류를 identifier로 구분
if segue.identifier == "presentDetail"{
}else if segue.identifier == "showDetail"{
//segue의 도착 VC 설정
let detailVC = segue.destination as! MealDetailViewController
//클릭한 셀의 인덱스 정보를 가져옴
let selectedIndexPath = sender as! IndexPath
//해당 인덱스의 mealModel을 MealDetailViewController의 mealModel에 전달
detailVC.mealModel = mealLists[selectedIndexPath.row]
}
}
}
extension ViewController : UITableViewDelegate{
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "showDetail", sender: indexPath)
}
//cell의 높이 지정
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 100
}
}
extension ViewController : UITableViewDataSource{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return mealLists.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// as! MealCell : MealCell.swift 코드에 접근
// withIdentifier : xib 파일에 존재하는 cell에 접근
let mealCell = tableView.dequeueReusableCell(withIdentifier: "mealCell", for : indexPath) as! MealCell
// MealModel의 데이터들을 mealCell로 전달( indexPath로 접근 )
mealCell.name.text = mealLists[indexPath.row].name
mealCell.mealImageView.image = mealLists[indexPath.row].photo
mealCell.ratingView.rating = mealLists[indexPath.row].rating
return mealCell
}
}
답변 1
강의 정리 및 개인 공부
0
278
1
DispatchQueue 질문입니다.
0
575
1
log in 강의 질문드립니다.
0
304
1
meal cell 클릭시 화면이동 불가
0
347
2
import CreateMLUI 이 안됩니다.
0
241
1
Stop Watch 질문
0
350
2
SignIn ViewController와 SignUp ViewController가 꽉 차지 않는 이유가 궁금합니다.
0
261
1
createMLUI가 import되지 않습니다
0
460
1
plist에 nsallowsarbitraryloads 추가시에도 http통신이 안됩니다
0
903
1
질문드립니다~
0
355
1
질문드립니다.
0
278
2
view와 Viewcontroller의 관계에 대해서 질문 드립니다.
0
222
1
stopwatch 강의 중 시간단위 변경에 대해 질문드립니다.
0
376
2
VNCoreMLRequest 실행 안됨
0
376
2
autolayout attr
0
207
0
Sign in 할때 발생하는 에러가 왜 나타나는지 모르겠습니다.
0
344
1
강의 관련 소스 코드 공유 부탁 드립니다.
0
363
2
별표시부분에 색깔이 칠해는거 없애려면 어떻게 하면 될까요?
0
252
1
반드시 required init을 생성해야하는 이유가 뭔가요??
0
952
1
3:20~ 3: 30 초에 rating 값을 0 으로 만들어 준다고했는데 왜 0으로 만들어주는 코드가 없죠?
0
254
1
질문입니다.
1
254
3
강사님 안녕하세요
0
158
1
MealDetailViewController에서 이미지 가져오지 못하는 문제
0
213
1
?? 설명하실 때요.
0
238
1





