๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
SeSAC

[iOS] TIL_230804

by lizzydev 2023. 8. 6.

์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ

  1. ๊ฒ€์ƒ‰ํ•˜๊ณ  ์žˆ๋Š” ๋‹จ์–ด ๋ฐฐ์—ด

  1. ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ๊ธ€์ž ๋ณ€๊ฒฝ ๋์„ ๋•Œ ๊ฒ€์ƒ‰ ์‹œ ๋‹จ์–ด ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” list ์š”์†Œ searchlist์— ์ถ”๊ฐ€ํ•˜๊ธฐ

  1. ๊ฒ€์ƒ‰ ๋œ ์…€์—์„œ ์ข‹์•„์š” ๋ˆ„๋ฅด๋Š” ๊ธฐ๋Šฅ

→ ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ ํ•˜๋ฉด ์›๋ณธ๋ฐ์ดํ„ฐ์—๋Š” ์ข‹์•„์š” ๋ฐ˜์˜ ์•ˆ๋˜์„œ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์—†์–ด์ง

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

  1. ์˜ํ™” ํƒ€์ดํ‹€ ๊ฐ€์ ธ์˜ค๊ธฐ

  1. ์›๋ณธ ๋ฐฐ์—ด(list)์—์„œ ๊ฐ™์€ title์—” ๋ฐ์ดํ„ฐ ์กฐํšŒํ•ด์„œ ๋ณ€๊ฒฝํ•˜๊ธฐ
  • item์€ ๋ฐ˜๋ณต๋ฌธ์šฉ ๋ณ€์ˆ˜์ž„ ์ธ๋ฑ์Šค ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Œ.
  • item์ด๋ž‘ index ๋‘˜ ๋‹ค ๊ฐ€์ ธ์™€์„œ ์›๋ณธ์ธ list์—์„œ ๋ฐ์ดํ„ฐ ์ˆ˜์ •

ํ…์ŠคํŠธํ•„๋“œ ํ”Œ๋ ˆ์ด์Šค ํ™€๋” ๋ฒ„๊ทธ ์ œ๊ฑฐ

  • ์•„๋ž˜ ๋กœ์ง ์ฒ˜๋Ÿผ ํ…์ŠคํŠธ ํ•„๋“œ ํ…์ŠคํŠธ ๋‚ด์šฉ์œผ๋กœ๋งŒ ํ”Œ๋ ˆ์ด์Šค ํ™€๋” ui ์ฒ˜๋ฆฌํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ placeholder๋ž‘ ๊ฐ™์€ ๋‚ด์šฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ํšŒ์ƒ‰์œผ๋กœ ๋ณ€ํ•ด๋ฒ„๋ฆฌ๋Š” ๋ฒ„๊ทธ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ.

  • ์•„๋ž˜์ฒ˜๋Ÿผ ํ…์ŠคํŠธ ์ปฌ๋Ÿฌ ๊ธฐ์ค€์œผ๋กœ ํŒ๋‹จํ•˜๋ฉด ์˜ค๋ฅ˜ X

์•ฑ์˜ ์ฒซ ํ™”๋ฉด ์„ค์ •ํ•˜๊ธฐ

์•ฑ์„ ํ‚ค๊ฒŒ ๋˜๋ฉด ๊ฐ€์žฅ ์ฒ˜์Œ AppDelegate ์ฝ”๋“œ๋“ค ๋Œ์•„๊ฐ„ ํ›„ SceneDelegate ์ฝ”๋“œ ์‹คํ–‰๋จ

SceneDelegate.swift

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    guard let _ = (scene as? UIWindowScene) else { return }
    let isLaunched = UserDefaults.standard.bool(forKey: "isLaunched")
    //๋งŒ์•ฝ ์œ ์ €๊ฐ€ ์ฒซ ์‹คํ–‰์ด๋ผ๋ฉด
    if isLaunched == false {
        let sb = UIStoryboard(name: "main", bundle: nil)
        let vc = sb.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController
        window?.rootViewController = vc
    } else {
        let sb = UIStoryboard(name: "main", bundle: nil)
        let vc = sb.instantiateViewController(withIdentifier: "LibraryViewController") as! LibraryCollectionViewController
        let nav = UINavigationController(rootViewController: vc)                        window?.rootViewController = vc
    }
    window?.makeKeyAndVisible()
    
}
  1. ๋งŒ์•ฝ ์œ ์ €๊ฐ€ ์ฒ˜์Œ ์•ฑ์„ ์‹คํ–‰ํ–ˆ๋‹ค๋ฉด FirstViewController๋ฅผ ์ฒซ ํ™”๋ฉด์œผ๋กœ
  2. ์ฒ˜์Œ ์‹คํ–‰์ด ์•„๋‹ˆ๋ผ๋ฉด Library View Controller๋ฅผ ์ฒซ ํ™”๋ฉด์œผ๋กœ
  • isLaunched ์œ ์ € ๋””ํด์ธ  ๊ฐ’ true๋กœ ์ง€์ •ํ•˜๋Š” ์ง€์ ์„ ์˜จ๋ณด๋”ฉ ํ™”๋ฉด ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ๋ฐ”๊ฟ€์ง€ or ์˜จ๋ณด๋”ฉ ๋‹ค๋ณด๊ณ  ํ• ๊ฑด์ง€ or๋ฉ”์ธํ™”๋ฉด ๋œจ๊ณ  ํ• ๊ฑด์ง€ ๋“ฑ์—์— ๋”ฐ๋ผ ๋กœ์ง์ด ๋‹ฌ๋ผ์ง

ํ”Œ๋กœ์šฐ ์ค‘๊ฐ„์— ๋ฃจํŠธ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ๊ต์ฒด ํ•˜๋Š” ์ฝ”๋“œ


@IBAction func startButtonClicked(_ sender: Any) {
    UserDefaults.standard.set(true, forKey: "isLaunched")
    let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene
    let sceneDelegate = windowScene?.delegate as? SceneDelegate
    let sb = UIStoryboard(name: "Main", bundle: nil)
    let vc = sb.instantiateViewController(withIdentifier: "LibraryCollectionViewController") as! LibraryCollectionViewController
    let nav = UINavigationController(rootViewController: vc)               
    sceneDelegate?.window?.rootViewController = nav
    sceneDelegate?.window?.makeKeyAndVisible()   
    
}

์œ„์ฝ”๋“œ์˜ UIApplication์€ AppDelegate์— ์žˆ๋Š” ์• .

UIApplication

'SeSAC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[iOS] TIL_230808  (0) 2023.08.09
[iOS] TIL_230807  (0) 2023.08.09
[iOS] TIL_230803  (0) 2023.08.06
[iOS] TIL_230802  (0) 2023.08.05
[iOS] TIL_230801  (0) 2023.08.03