728x90
아쉽게도 필자는 이미 한국인이다
storyboard로 화면 전환 됐을 때는 좋았지..
코드로 구현하는 숙제가 남았을 뿐
화면 전환 (Code)
저번 게시물에서 segue를 통해 화면전환을 구현 해보았다 마우스로 단 클릭 두번에
이번에는 코드로 구현해보자
1. 스토리보드를 가져오자
-> storyboard의 이름을 가져옴
2. 스토리 보드 안에 뷰컨트롤러 가져옴
-> 이때 Identifier 설정이 중요한데 Identifier 설정을 해주지 않는 다면 스토리보드 안에 뷰컨틀롤러로 가져오지 못 한다
2.5 를 실행하지 않아도 화면전환이 되지만 화면 전환 방식을 정해줄 수 있다
3. persent 설정 시 화면은 나타남 dismiss 설정 시 화면은 사라짐
Push
//1.
let storyboardFile = UIStoryboard(name: "Trend", bundle: nil)
//2. 스토리보드 안에 뷰컨트롤러로 가져옴
let viewControllerPick = storyboardFile.instantiateViewController(withIdentifier: BucketlistTableViewController.identifier) as! BucketlistTableViewController
viewControllerPick.textFieldPlaceholder = "도서"
//2.5 네비게이션 임베디드
let navigationControllerPick = UINavigationController(rootViewController: viewControllerPick)
//2.5 present시 화면 전환 방식 설정 (옵션)
navigationControllerPick.modalPresentationStyle = .fullScreen
//3. 어떤 방식으로 띄워줄건가
self.present(navigationControllerPick, animated: true)
Push일 경우 네비게이션 컨트롤러가 필요하다
네비게이션 컨트롤러가 있어야만 push 사용 가능
네비게이션 임베디드가 되어 있지 않다면? 아무리 push를 하려해도 화면은 전환이 되지 않는다
NavigationBar 설정
navigationItem.title = "영화"
navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(systemName: "magnifyingglass.circle.fill"), style: .plain, target: self, action: #selector(searchButtonClicked))
navigationBar의 타이틀 설정도 가능하고
rightBarIButtontem , leftBarButtonItem을 만든 후 action 부분에 들어갈 메서드를 @objc 매서드로 만들어서 넣어주면 된다
@objc func searchButtonClicked() {
//1.
let storyboardFile = UIStoryboard(name: "BookProject", bundle: nil)
//2. 스토리보드 안에 뷰컨트롤러로 가져옴
let viewControllerPick = storyboardFile.instantiateViewController(withIdentifier: "GlassesViewController") as! GlassesViewController
//2.5 네비게이션 임베디드
let navigationControllerPick = UINavigationController(rootViewController: viewControllerPick)
//2.5 present시 화면 전환 방식 설정 (옵션)
navigationControllerPick.modalPresentationStyle = .fullScreen
//3. 어떤 방식으로 띄워줄건가
self.present(navigationControllerPick, animated: true)
}
searchButtonClicked라는 매서드를 만든 후 action 부분에 넣어주어서 클릭했을 때 화면전환이 가능하게 끔 만들었다
'Tech > iOS' 카테고리의 다른 글
[iOS] Day 19 - 데이터 전달 (0) | 2022.07.22 |
---|---|
[iOS] Day 18 - Property (0) | 2022.07.21 |
[iOS] Day 17 - CollectionView (0) | 2022.07.20 |
[iOS] Day 16 - TableView(2) (0) | 2022.07.19 |
[iOS] Day 16 - TableView(1) (0) | 2022.07.19 |