210417 Sat

Sunny·2021년 4월 28일
0

Today I Learned

목록 보기
37/88

1. 첫 번째 학습 내용: 테이블 뷰 이미지 삽입

var koreanItems: [KoreanItem] = []

let item: KoreanItem = self.koreanItems[indexPath.row]
	cell.imageView?.image = UIImage(named: item.englishTitle)
  return cell

indexPath.row → 0번째, 1번째, 2번째.. 순서 나타냄

이 순서대로 이미 배열이 생성

englishTitle이랑 이미지 에셋에 파일명들이 다 같으니까 이름에 맞는 이미지를 imageView에 불러오게 됨

2. 두 번째 학습 내용: Navigation Controller

Editor - Embed In - Navigation Controller

guard let uvc = self.storyboard?.instantiateViewController(withIdentifier: 
								"SecondVC") else { return }
  • 스토리보드에서 설정했던 아이디를 이용하여 뷰 컨트롤러를 읽어오고, 객체로 생성하는 내용.
  • 안전한 코드를 위해 self.storyboard를 옵셔널 체인으로 처리하여 instantiateViewController(withIdentifier:) 메소드를 호출하여 뷰 컨트롤러의 인스턴스를 받아온 다음, 옵셔널 타입을 해제하기 위해 상수 uvc에 바인딩함
  • 만약 바인딩이 실패할 경우, 해당 메소드의 실행은 중지됨
 self.navigationController?.pushViewController(uvc, animated: true)
  • 화면 전환을 처리하는 부분
  • pushViewController(_:animated:) 메소드는 기술적 관점에서 내비게이션 스택 최상위에 뷰 컨트롤러 객체 uvc를 추가하는 것이지만, 사용자들에게는 화면을 전환하는 결과로 나타남
  • 유의할 점은 메소드를 호출하는 대상임
  • pushViewController(_:) 메소드는 호출하는 대상이 내비게이션 컨트롤러
  • self.navigationController는 현재의 뷰 컨트롤러에 연결된 내비게이션 컨트롤러를 가리키는 것으로, 만약 뷰 컨트롤러에 내비게이션 컨트롤러가 연결되어 있지 않을 경우 nil 값을 반환함

출처: 꼼꼼한 재은 씨의 스위프트 기본편 CHAPTER 04 화면 전환 199p

첫번째 화면 네비게이션바 감추기

override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        navigationController?.setNavigationBarHidden(true, animated: animated)
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        navigationController?.setNavigationBarHidden(false, animated: animated)
    }

Thanks to 스티븐 & Kio 😉

profile
iOS Developer

0개의 댓글