minuco

1. 사용방법

Preview를 보고 싶은 곳에서 아래 코드를 사용합니다.

makeUIViewController(context: Context) 내부에서

이름을 Preview를 보고 싶은 ViewController 이름으로 변경해 주시면 됩니다.

      <swift>

#if DEBUG
import SwiftUI
struct Preview: UIViewControllerRepresentable {

// 여기 ViewController를 변경해주세요func makeUIViewController(context: Context) -> UIViewController {
        ViewController()
    }

    func updateUIViewController(_ uiView: UIViewController,context: Context) {
// leave this empty
    }
}

struct ViewController_PreviewProvider: PreviewProvider {
    static var previews: some View {
        Group {
            Preview()
                .edgesIgnoringSafeArea(.all)
                .previewDisplayName("Preview")
                .previewDevice(PreviewDevice(rawValue: "iPhone 12 Pro"))
        }
    }
}
#endif

캔버스 여는 방법은 option + command + Enter입니다.

이러면 PreView를 보실 수 있습니다.

또한, 코드 수정 후 PreView를 새로고침하는 방법은

option + commnad + p입니다.

2. Extension으로 만들어 사용하기

여러 곳에서 사용할 때 간단하게 사용하기 위해

extension을 이용하여 만들어 봅시다.

      <swift>

import SwiftUI

#if DEBUG
extension UIViewController {
    private struct Preview: UIViewControllerRepresentable {
        let viewController: UIViewController

        func makeUIViewController(context: Context) -> UIViewController {
            return viewController
        }

        func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
        }
    }

    func toPreview() -> some View {
        Preview(viewController: self)
    }
}
#endif

사용 시

아래 코드를 갖고

Preview를 보고 싶은 곳에서 사용하시면 됩니다.

      <swift>

// MARK: - PreViewimport SwiftUI

#if DEBUG
struct PreView: PreviewProvider {
    static var previews: some View {
// 사용할 뷰 컨트롤러를 넣어주세요ViewController()
            .toPreview()
    }
}
#endif

'iOS > Swift' 카테고리의 다른 글

[Swift Network] URLSession  (0) 2023.04.12
[Swift Network] URLSession - 사전지식  (0) 2023.04.12
[Swift] Closure - 축약  (0) 2023.03.23
[Swift] Closure - escaping  (0) 2023.03.23
[Swift] Closure - Capturing  (0) 2023.03.23
profile

minuco

@minuco

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!