[iOS] App Development
[iOS] 설정화면 -> 설정 디테일 화면 구현 방법(tableView)
ddgoori
2021. 12. 16. 15:07
설정화면 구현시 궁금한 점
위 인스타그램 설정화면 처럼
1) 테이블뷰에서 이름설정, 생년월일 설정, 로그아웃 설정을 할 때, 해당 row 선택시
각 테이블뷰의 indexPath를 알아내서
서로 다른 뷰컨으로 보내는 것이 일반적인가?
2) 혹은 같은 뷰컨으로 보내지만, 하단의 내용만 달라지게 하는 것인가?
=> 일반적으로는 1)으로 화면마다 하나씩 뷰컨을 따로 만듬!
+ didSelectRowAt에서 선택한 indexPath 정보를 기반으로 다른 뷰컨으로 보내는 방법은 무엇인가?
extension SettingViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let titleLabel = cellTitle[indexPath.row]
print(titleLabel)
print(indexPath)
if indexPath == [0, 0] {
guard let vc = storyboard?.instantiateViewController(withIdentifier: "settingDetail") as? SettingBabyNameViewController else {
return
}
navigationController?.pushViewController(vc, animated: true)
} else {
guard let vc = storyboard?.instantiateViewController(withIdentifier: "settingDday") as? SettingDdayViewController else {
return
}
navigationController?.pushViewController(vc, animated: true)
}
}
}
우선 이렇게 구현은 했지만 개똥같은 코드다ㅎ.ㅎ; 릴리즈 우선하고 리팩토링 해나갈 예정 ㅠ
리팩토링 필요 부분: didSelect하는 Row의 순서만 바꿔도 바꿀게 많아져서 메소드도 나누고 Setting관련 모델도 만들어보기!