TIL

57일차 TIL

h_luz 2024. 5. 20. 23:27

 

모의면접 시뮬레이션 Q&A

 

Q4. present를 사용해 화면 전환을 구현하는 방법을 설명해 주세요.

A : 화면전환을 구현하는 방법은  present, Navigation 방식 등등,, 여러 가지가 있습니다.  그중에서 present방식에 대해서 이야기해 보자면 present와 dismiss 메서드로 화면을 띄우고, 내릴 수 있습니다. present 메서드는 현재 뷰 컨트롤러에서 새로운 뷰 컨트롤러를 모달 형태로 표시합니다. 이 방식은 새로운 화면이 기존 화면 위에 덮어쓰는 형태로 표시되며, 새로 띄운 화면은 뒤로 가기 버튼이 따로 표시되지 않습니다. 따라서, 화면을 내릴 때는 dismiss 메서드를 사용해야 합니다.

 

//present
let newVC = UIViewController() // 이동할 뷰 컨트롤러
newVC.modalPresentationStyle = .fullScreen
present(newVC, animated: true, completion: nil)

전체 화면으로 표시하고 싶을 경우, modalPresentationStyle을 .fullScreen으로 줄 수 있다.

default 값은 .automatic으로 '현재 UI 환경과 사용 중인 기기의 특성에 따라 가장 적합한 모달 프레젠테이션 스타일을 자동으로 선택' 

//dismiss
dismiss(animated: true, completion: nil)

dismiss 메서드를 호출. 보통 버튼을 통해 구현됨

 


 

Navigator 사용해서 연결하려고 했는데 잘 안됨 -> 결국 present로 화면 전환 ㅜ

 

WordEntity와 BookCase의 관계 설정

 

단어장 선택하고, 선택된 단어장의 데이터를 계속 가져와서 그 데이터 추가할 때 연결해 주기 작업 중

- bookCase를 NSManagedObject로 설정해서 가져가고 있었는데 에러가 나서 보니까

BookCase 타입으로 가져가야 한다고 해서 처음에 가져갈 때부터 이렇게 설정해 줬다!

extension BookCaseViewController: BookCaseBodyViewDelegate {
    func didSelectBookCase(_ bookCase: NSManagedObject) {
        guard let bookCase = bookCase as? BookCase else {
            print("Error: Failed NSManagedObject to BookCase")
            return
        }
        
        let addVocaVC = AddVocaViewController()
        addVocaVC.bookCase = bookCase
        addVocaVC.modalPresentationStyle = .fullScreen
        present(addVocaVC, animated: true)
    }
}

AddVocaViewController에서도 데이터 잘 연결해서 설정해 줬는데 저장할 때 에러 나면서 꺼지길래 왜징.. ㅠㅠ 하고 코드 계속 다 확인해 봤는데 잘 설정되어있어서,,ㅠㅠ 계속 찾아보다가 결국 chatGPT한테 이 에러가 왜 나는지 물어봤는데 relationship 설정을 코어데이터모델파일에서 잘 해줬는지 확인해야한다고 해서 확인해봤는데

 

분명히 처음에 시작할 때 코어데이터모델 파일에서 relationship 설정해 줬는데

갑자기 다시 확인해 보니까 설정 안 되어있어서,,, ㅠㅠㅠ 흑흑..

 

여하튼 그러고 저장한 내용을 확인해 보면

 

 

이렇게 단어 엔티티를 보면 단어장마다 숫자가 다르게 저장되는 것을 확인하 ㄹ수 있음

 

 

'TIL' 카테고리의 다른 글

59일차 TIL  (5) 2024.05.22
58일차 TIL  (0) 2024.05.21
55, 56일차 TIL  (4) 2024.05.17
54일차 TIL  (4) 2024.05.14
53일차 TIL  (4) 2024.05.13