Cocoa Touch Class
를 선택하고@IBOutlet
변수로 만들어준다numberOfRowsInSection
-> Int
cellForRowAt
-> cell
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10 // 임시로 10개만 찍어보자
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// dequeueReusableCell : 입력한 identifier의 cell을 반환해준다
guard let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell") else { return UITableViewCell() }
return cell // 반환은 cell로
}
viewDidLoad
에 찍어줘야한다UINib
로 만들고TableViewCell
)에서 지정한 변수들에 접근할 수 있다TableViewCell
이라고 생각하면 된다TableViewCell
의 변수들에 접근할 수 있으므로 titleLabel
의 text를 변경해보자indexPath.row
: row의 인덱스 값이다return animalData.count
titleLabel
만 Animal[indexPath.row].name
로 지정didSelectRowAt
DetailViewController
)이제 didSelectRowAt
함수 안에 내용을 써보자
let storyboard = UIStoryboard(name: "Main", bundle: nil)
DetailViewController
를 가져와야한다(DetailViewController
를 인스턴스화(instantiateViewController
) 하고 DetailViewController
에 있는 클래스로 다운캐스팅한다)guard let detailViewController = storyboard.instantiateViewController(identifier: "DetailViewController") as? DetailViewController else { return }
detailViewController
로 DetailViewController
에 있는 변수를 사용할 수 있다Animal
이므로 데이터를 받을 변수를 하나 만들자navigationController?.pushViewController
)DetailViewController
에서 데이터를 전달받았으니Kingfisher 사용하기
- 왜 사용하냐? => 이미지 처리를 쉽게 해주는 라이브러리
- kingfisher 다운받기