티스토리 뷰

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
import Foundation
import UIKit
import WebKit
 
class WebViewController: UIViewController, WKNavigationDelegate{
    
    @IBOutlet weak var WebView: WKWebView!
    var url = "https://google.com"
    
    override func viewDidLoad() {
        let stringToURL = URL(string: url)
        self.WebView.navigationDelegate = self
        self.WebView.load(URLRequest(url: stringToURL!))
    
    }
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        //get webview title
        self.WebView.evaluateJavaScript("document.title") {(result,error )in
        self.navigationItem.title = result asString
    }
    }
    
}
cs
webViewController.storyboard

- storyboardUI로 만든 view controller

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
import Foundation
import WebKit
import SwiftUI
struct WebView: UIViewRepresentable {
    
    var url: String
    
    func makeUIView(context: Context) -> some UIView {
        
        let stringToUrl = URL(string: self.url)
        let request = URLRequest(url: stringToUrl!)
        let wkWebView = WKWebView()
        
        wkWebView.load(request)
        
        return wkWebView
        
    }
    func updateUIView(_ uiView: UIViewType, context: Context) {
        
    }
}
 
//UIViewController
struct WebViewControllerNavi:UIViewControllerRepresentable {
    
    func makeUIViewController(context: Context) -> some UIViewController {
        
        let WebViewController = UIStoryboard(name: "WebViewController", bundle: nil).instantiateViewController(identifier: "WebViewController"as! WebViewController
        let navi = UINavigationController(rootViewController: WebViewController)
        
        return navi
    }
    
    func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) {
        
    }
}
 
cs

1.WebView 구조체 : SwiftUI 사용 방식2.WebViewControllerNavi 구조체 : StoryboardUI 를 코드로 가져와 실행시키는 방식

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
import SwiftUI
 
struct ContentView: View {
   
    var body: some View {
    
     WebViewControllerNavi()
        
    }
}
 
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        Group {
            ContentView()
        }
    }
}
 
cs

- WebView.swift 에 선언한 구조체들로 실행 가능

 

결과물

 

'iOS 개발 > SwiftUI' 카테고리의 다른 글

SwiftUI) placeholder 사용 예제  (0) 2022.01.28
SwiftUI) Grid 사용 예제  (0) 2022.01.28
SwiftUI) button alert 예제  (0) 2022.01.23
SwiftUI) ViewModifer 개념 예제  (0) 2022.01.23
SwiftUI) List 개념 예제  (0) 2022.01.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함