728x90
루트 뷰컨트롤러 설정
1. Main.storyboard 파일 지우기
2. Info.plist 와 Targets에 스토리보드 속성 지우기
3. SceneDelegate.swift에서 루트 뷰컨트롤러 지정
//루트 뷰 컨트롤러 설정!
guard let scene = scene as? UIWindowScene else { return }
self.window = UIWindow(windowScene: scene)
window?.rootViewController = SplashViewController()
window?.makeKeyAndVisible()
탭바+네비게이션 컨트롤러 설정
1. 탭바 아이템 설정
2. 네비게이션 컨트롤러 설정
3. 탭바로 지정할 컨트롤러 설정
import Foundation
import UIKit
class BaseTapBarController: UITabBarController, UITabBarControllerDelegate {
let actionViewController = ActionViewController()
let networkViewController = NetworkViewController()
//탭바 아이템 설정
let actionTapBarItem = UITabBarItem(title: "Action", image: nil, tag: 0)
let networkTapBarItem = UITabBarItem(title: "Network", image: nil, tag: 1)
override func viewDidLoad() {
super.viewDidLoad()
//네비게이션 컨트롤러로 설정
let actionNetworkController = UINavigationController(rootViewController: actionViewController)
let networkNetworkController = UINavigationController(rootViewController: networkViewController)
actionNetworkController.tabBarItem = actionTapBarItem
networkNetworkController.tabBarItem = networkTapBarItem
//탭바로 지정할 컨트롤러 설정
self.viewControllers = [actionNetworkController, networkNetworkController]
self.delegate = self
}
}
화면 전환
네비게이션 컨트롤러를 이용한 화면 전환
self.navigationController?.pushViewController(TransitionNextViewController(), animated: true)
네비게이션 컨트롤러를 이용한 뒤로가기
self.navigationController?.popViewController(animated: true)
네비게이션 컨트롤러의 RootViewController로 이동
self.navigationController?.popToRootViewController(animated: true)
화면 일부를 덮는 modal
self.present(TransitionNextViewController(), animated: true, completion: nil)
화면 전체를 덮는 modal
let nextVC = TransitionNextViewController()
nextVC.modalPresentationStyle = .overFullScreen
self.present(nextVC, animated: true, completion: nil)
새로운 윈도우로 화면 전환 ex) 로그인 화면으로 돌아가기(화면 갈아 엎기)
let splashViewController = SplashViewController()
if let window = UIApplication.shared.windows.first{
window.rootViewController = splashViewController
UIView.transition(with: window, duration: 0.5, options: .transitionCrossDissolve, animations: nil)
}else{
splashViewController.modalPresentationStyle = .overFullScreen
self.present(splashViewController, animated: true, completion: nil)
}
728x90
'iOS' 카테고리의 다른 글
[iOS] 스토리보드 화면 전환 총정리‼️ (0) | 2021.07.29 |
---|---|
[iOS] 스토리보드 레퍼런스(Storyboard Reference) (0) | 2021.07.29 |
[RC_week5] iOS openAPI를 활용한 영화 예매 앱 만들기 (0) | 2021.07.18 |
[RC_week4] iOS 쓰레드를 활용한 게임 만들기 (0) | 2021.07.11 |
[iOS_study] 시뮬레이터 화면 녹화하기 (0) | 2021.07.09 |