나는 현재 UITableView에 Inset Grouped 스타일을 적용하여 섹션을 row처럼 사용해 아래와 같이 이용하고 있다.
셀을 선택하면 다음 화면으로 넘어가 자세한 일기 내용을 보여주고 싶었다.
그런데 나는 한 섹션 당 모두 row가 하나였기 때문에 row index 번호는 모두 0이었고, section index를 이용해 구분해야 했다.
다음 화면으로 넘어가도록 연결해 놓은 Segue의 identifier을 작성해 준다.
// 데이터 전달
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "diarySegue" {
if let destination = segue.destination as? DiaryViewController {
if let selectedIndex =
self.tableView.indexPathForSelectedRow {
destination.diaryTitle = diaries[selectedIndex[0]].title
}
}
}
}
selectedIndex를 출력해 보면 [0, 0], [1, 0]과 같이 출력된다. 첫 번째 인덱스가 section 번호이고 두 번째가 row 번호이다.
따라서 selectedIndex[0]을 인자로 사용해 줬다.
import UIKit
class DiaryViewController: UIViewController {
@IBOutlet weak var navItem: UINavigationItem!
var diaryTitle: String!
// 더미데이터 불러오기
let diaries = Diary.data
override func viewDidLoad() {
super.viewDidLoad()
navItem.title = diaryTitle
}
}
navigation title에 잘 적용된 것을 볼 수 있다. 🙂