[Swift] SceneDelegate.swift 파일 찍먹

yxxjxn·2023년 7월 19일

단일 뷰

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        
        guard let windowScene = (scene as? UIWindowScene) else { return }
        
        // 단일 뷰를 보여주는 전통적인 예시 코드
        window = UIWindow(frame: windowScene.coordinateSpace.bounds)
        window?.windowScene = windowScene
        // 뿌리가 되는 ViewController -> 시작점을 정해준다.
        window?.rootViewController = ViewController()
        window?.makeKeyAndVisible()
}


window 변수의 의미(?)

  • push로 다음 화면들을 보여준다.
  • pop으로 앞선 화면으로 돌아간다.
    => 자료 구조 중에 스택을 생각하면 좋다.
/* SceneDelegate.swift */
let navigationViewController = UINavigationController(rootViewController: FirstViewController())
window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene
window?.rootViewController = navigationViewController
window?.makeKeyAndVisible()

/* FirstViewController.swift */
let detailViewContoller = DetailViewController()
navigationController?.pushViewController(detailViewContoller, animated: true)

TabBarController

let tabBarController = UITabBarController()

let firstViewController = UINavigationController(rootViewController: FirstViewController())
firstViewController.tabBarItem = UITabBarItem(title: "First", image: UIImage(systemName: "pencil.circle"), tag: 0)

let secondViewController = SecondViewController()
secondViewController.tabBarItem = UITabBarItem(title: "Second", image: UIImage(systemName: "eraser.fill"), tag: 0)

tabBarController.viewControllers = [firstViewController, secondViewController]

window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene
window?.rootViewController = tabBarController
window?.makeKeyAndVisible()
profile
macos

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

유익한 정보를 제공해주셔서 감사합니다.

답글 달기