반응형
Xcode 14.x 버전에는 info.plist 파일이 사라졌다. !
그럼 어디서 설정하면 되는가 ?
Project → Targets → Info → Custom iOS Target Properties
프로젝트 부분을 클릭한다 !
info 파트를 누르고
App Transport Security Settings 에 커서를 놓고 엔터를 친다
Allow Arbitrary Loads를 찾아 입력하고 Yes 값으로 바꿔주면 됩니다.
import SwiftUI
import WebKit
// uikit 의 uiview를 사용할 수 있도록 한다.
// UIViewControllerRepresentable
struct MyWebView : UIViewRepresentable {
var urlToLoad : String
//ui view 만들기
func makeUIView(context: Context) -> WKWebView {
//unwrappeing
guard let url = URL(string: self.urlToLoad) else {
return WKWebView()
}
let webview = WKWebView()
webview.load(URLRequest(url: url))
return webview
}
//업데이트 ui view
}
WebKit 헤더를 import 해주고 UIViewRepresentable로 구조체를 선언해준 뒤, 넘겨준 url을 사용하여 웹뷰 인스턴스를 생성 / 로드 하는 것을 확인할 수 있다.
url 은 꼭 !! unwrapping을 해주어야 합니다 .
import SwiftUI
import WebKit
// uikit 의 uiview를 사용할 수 있도록 한다.
// UIViewControllerRepresentable
struct MyWebView : UIViewRepresentable {
var urlToLoad : String
//ui view 만들기
func makeUIView(context: Context) -> WKWebView {
//unwrappeing
guard let url = URL(string: self.urlToLoad) else {
return WKWebView()
}
let webview = WKWebView()
webview.load(URLRequest(url: url))
return webview
}
//업데이트 ui view
func updateUIView(_ uiView: WKWebView, context: UIViewRepresentableContext<MyWebView>) {
}
}
struct Previews_MyWebview_Previews: PreviewProvider {
static var previews: some View {
MyWebView(urlToLoad: "https://www.naver.com")
}
}
import SwiftUI
struct ContentView: View {
// @State 값의 변화를 감지 -> 뷰에 적용
@State
private var isActivated : Bool = false
var body: some View {
NavigationView{
VStack{
HStack{
// MyVstackView()
// MyVstackView()
CircleImageView(isActivated: $isActivated)
}
.padding(isActivated ? 100.0 :50.0)
.background(isActivated ? Color.black : Color.indigo)
.cornerRadius(isActivated ? 0 : 20)
// 탭 제스쳐 추가
.onTapGesture {
print("HStack 클릭 되었다.")
//에니메이션과 함께
withAnimation{
// toggle() true 이면 false 로 false 이면 true
self.isActivated.toggle()
}
}// Hstack
HStack{
NavigationLink(destination:MyTextView(isActivated: $isActivated)){
Text("Colors")
.fontWeight(.bold)
.padding()
.font(.system(size: 40))
.background(Color.green)
.foregroundColor(Color.white)
.cornerRadius(30)
}.padding(.top,50)
NavigationLink(destination:MyWebView(urlToLoad: "https://smart-factory-lee-joon-ho.tistory.com/m"))
{
Text("Blog")
.fontWeight(.bold)
.padding()
.font(.system(size: 40))
.background(Color.green)
.foregroundColor(Color.white)
.cornerRadius(30)
.edgesIgnoringSafeArea(.all)
}.padding(.top,50)
}
// 네비게이션 버튼 (링크)
}
}//NavigationView
}
NavigationLink 로 버튼을 하나 만들고 destination에 MyWebView를 연결하였다.
반응형
'App Dev > iOS' 카테고리의 다른 글
iOS Swift 함수 매개변수 사용 방법 ( 변수명 변경, 생략) (0) | 2023.04.03 |
---|---|
iOS Swift <T> Generic 제네릭 사용법 (0) | 2023.03.28 |
iOS Swift 옵셔널 변수를 Unwrapping 하는 두가지 방법 (0) | 2023.03.27 |
iOS Swift Enum 열거형은 어떻게 쓰는 걸까 ? (0) | 2023.03.27 |
iOS Swift Foreach 반복문 기초문법 사용법 알아봅시다 (0) | 2023.03.27 |
iOS SwiftUI @State 문법 어떻게 사용하면 될까? (0) | 2023.03.09 |