[swift] 런치 이미지를 전면에 띄우고 다른 뷰 컨트롤러로 연결하는 방법

iOS 앱을 개발할 때, 앱을 시작할 때 런치 이미지를 보여주고 다른 뷰 컨트롤러로 이동하는 경우가 많이 있습니다. 이번 가이드에서는 Swift 언어를 사용하여 런치 이미지를 전면에 띄우고 다른 뷰 컨트롤러로 연결하는 방법을 알아보겠습니다.

1. LaunchScreen.storyboard 생성하기

먼저, LaunchScreen.storyboard 파일을 생성해야 합니다. Xcode의 프로젝트 네비게이터에서 File -> New -> File을 선택한 후, iOS 탭에서 “Launch Screen”을 선택하여 생성합니다.

2. LaunchScreen.storyboard 에 이미지 뷰 추가하기

LaunchScreen.storyboard 에서 이미지 뷰를 추가하여 런치 이미지를 표시할 준비를 해야 합니다. 디바이스 크기에 따라 다른 이미지를 사용하도록 이미지 뷰의 이미지 설정을 조정할 수도 있습니다.

3. 특정시간 이후 다음 뷰 컨트롤러로 이동하기

앱을 시작할 때 런치 이미지를 표시한 후, 일정 시간이 지난 뒤에 다음 뷰 컨트롤러로 이동하도록 코드를 작성해야 합니다. 이를 위해 DispatchQueue.main.asyncAfter(deadline: .now() + 시간)을 사용합니다.

import UIKit

class LaunchViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
            self.navigateToNextViewController()
        }
    }
    
    private func navigateToNextViewController() {
        // 다음 뷰 컨트롤러로 이동하는 코드 작성
    }

}

위 코드에서는 navigateToNextViewController 메서드를 호출하여 다음 뷰 컨트롤러로 이동합니다. 해당 메서드에는 다음 뷰 컨트롤러로 이동하는 코드를 작성해야 합니다.

4. Main.storyboard 에서 다음 뷰 컨트롤러 추가하기

navigateToNextViewController 메서드에서 다음 뷰 컨트롤러로 이동하려면, Main.storyboard 에서 해당 뷰 컨트롤러를 추가해야 합니다. 그리고 이동하고자 하는 뷰 컨트롤러에 해당하는 클래스를 설정해야 합니다.

5. 이동하는 코드 작성하기

다음 뷰 컨트롤러로 이동하는 코드를 작성해야 합니다. 이는 navigationController?.pushViewController 메서드를 사용할 수 있습니다.

private func navigateToNextViewController() {
    let nextViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "NextViewController")
    navigationController?.pushViewController(nextViewController, animated: true)
}

위 코드에서는 “NextViewController”에 해당하는 뷰 컨트롤러를 찾아서 pushViewController 메서드로 이동합니다.

6. AppDelegate.swift 파일 수정하기

마지막으로, AppDelegate.swift 파일을 수정하여 앱이 시작될 때 LaunchViewController 가 시작 뷰 컨트롤러로 설정되도록 해야 합니다.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    let launchViewController = UIStoryboard(name: "LaunchScreen", bundle: nil).instantiateInitialViewController() as! LaunchViewController
    let navigationController = UINavigationController(rootViewController: launchViewController)
    window?.rootViewController = navigationController
    window?.makeKeyAndVisible()
    
    return true
}

위 코드에서는 instantiateInitialViewController 메서드를 사용하여 LaunchViewController를 가져온 뒤, 이를 시작 뷰 컨트롤러로 설정합니다. 그리고 UINavigationController 로 둘러 싸서 화면에 표시합니다.

이제 앱을 실행하면 런치 이미지를 전면에 띄운 후, 설정한 시간이 지난 후 다음 뷰 컨트롤러로 이동하는 것을 확인할 수 있습니다.

이 가이드는 Swift 언어를 사용하여 런치 이미지를 전면에 띄우고 다른 뷰 컨트롤러로 연결하는 방법을 안내했습니다. Swift 언어와 iOS 앱 개발에 관심이 있다면, iOS 앱 개발 가이드를 참고하세요.