[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관련 모델도 만들어보기!