SceneDelegate.swift 파일 내 아래 코드 적용
// 첫화면이 뜨기전에, 탭바를 내장시키기⭐️⭐️⭐️
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: windowScene)
// 탭바컨트롤러의 생성
let tabBarVC = UITabBarController()
// 첫번째 화면은 네비게이션컨트롤러로 만들기 (기본루트뷰 설정)
let vc1 = UINavigationController(rootViewController: FirstViewController())
let vc2 = SecondViewController()
let vc3 = ThirdViewController()
let vc4 = FourthViewController()
let vc5 = FifthViewController()
// 탭바 이름들 설정
vc1.title = "Main"
vc2.title = "Search"
vc3.title = "Post"
vc4.title = "Likes"
vc5.title = "Me"
// 탭바로 사용하기 위한 뷰 컨트롤러들 설정
tabBarVC.setViewControllers([vc1, vc2, vc3, vc4, vc5], animated: false)
tabBarVC.modalPresentationStyle = .fullScreen
tabBarVC.tabBar.backgroundColor = .white
// 탭바 이미지 설정 (이미지는 애플이 제공하는 것으로 사용)
guard let items = tabBarVC.tabBar.items else { return }
items[0].image = UIImage(systemName: "trash")
items[1].image = UIImage(systemName: "folder")
items[2].image = UIImage(systemName: "paperplane")
items[3].image = UIImage(systemName: "doc")
items[4].image = UIImage(systemName: "note")
// 기본루트뷰를 탭바컨트롤러로 설정⭐️⭐️⭐️
window?.rootViewController = tabBarVC
window?.makeKeyAndVisible()
}
각 탭바 내에 파일 생성한다.
FirstViewController.swift 내에 파일 코드 작성
class FirstViewController: UIViewController {
// 로그인 여부에 관련된 참/거짓 저장하는 속성
var isLoggedIn = false
//var navigationController: UINavigationController?
override func viewDidLoad() {
super.viewDidLoad()
makeUI()
}
// 다음화면을 띄우는 더 정확한 시점 ⭐️⭐️⭐️
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// ⭐️ 로그인이 되어있지 않다면 로그인화면 띄우기
if !isLoggedIn {
let vc = LoginViewController()
vc.modalPresentationStyle = .fullScreen
present(vc, animated: false, completion: nil)
}
}
func makeUI() {
view.backgroundColor = .gray
// (네비게이션바 설정관련) iOS버전 업데이트 되면서 바뀐 설정⭐️⭐️⭐️
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground() // 불투명으로
//appearance.backgroundColor = .brown // 색상설정
//appearance.configureWithTransparentBackground() // 투명으로
navigationController?.navigationBar.tintColor = .blue
navigationController?.navigationBar.standardAppearance = appearance
navigationController?.navigationBar.compactAppearance = appearance
navigationController?.navigationBar.scrollEdgeAppearance = appearance
title = "Main"
}
}
'UIKit > 기본' 카테고리의 다른 글
공공 API를 어떻게 갖고 오나? (공공 API를 GET 하는 방법) (0) | 2024.04.09 |
---|---|
Filemanager로 CRUD 해보기 (1) | 2024.04.04 |
Drawing Cycle (+ Layout Cycle) (0) | 2024.03.28 |
앱의 생명주기 (App Life Cycle) (0) | 2024.03.27 |
ViewController의 life cycle (1) | 2024.03.27 |