100 days of Swift - Day 24

sun02·2021년 9월 10일
0

100 days of Swift 

목록 보기
21/40

import WebKit

iOS에서 웹 뷰를 다루는 방법 중 WKWebView를 사용할 것이기 때문에 WebKit 프레임워크를 추가해준다.


var webView: WKWebView!

웹 뷰를 만들 때, 나중에 참조할 수 있도록 프로퍼티로 저장해야한다.


override func loadView() {
	webView = WKWebView()
    webView.navigationDelegate = self
    view = webView
}
  • 스토리보드에 레이아웃을 로드하는 기본 구현이 있기 때문에 override를 사용한다.
  • webView = WKWebView() : WKWebView 웹브라우저 인스턴스를 만들고 이를 webView프로퍼티에 할당하였다.
  • view = webView : 우리의 뷰(뷰컨트롤러의 루트 뷰)를 webView로 만든다.
  • webView.navigationDelegate = self : web 페이지 navigation이 발생하면 현재의 view controller에게 알려준다.
    • 이 때, 프로토콜을 반드시 준수해야한다. "delegate를 처리하는 경우 실행해야하는 메서드가 존재한다." naviagtionDelegate의 경우 모든 메서드가 선택사항이다.
    • 네가 구현하는 모든 메서드는 WKWebView의 동작을 제어할 수 있다. 네가 구현하지 않은 메서드는 WKWebView의 defaul동작을 사용한다.
 
 class ViewController: UIViewController, WKNavigationDelegate {
 }
 
  • 스위프트에서 class A: B 는 클래스 B에서 제공하는 기능을 기반으로 A라는 새로운 클래스를 정의한다는 의미이다.
  • class A: B, C는 B를 상속받고 C 프로토콜을 구현하겠다고 약속한다는 의미이다.
  • 따라서 순서가 매우 중요하다. 상위 클래스가 먼저 오고, 구현된 모든 프로토콜이 그 뒤에 온다.

let url = URL(string: "https://www.hackingwithswift.com")!
webView.load(URLRequest(url:url)
webView.allowsBackForwardNavigationGestures = true
  • URL : 스위프트에서 파일 위치를 저장하는 새로운 데이터 타입
    • 이때 iOS는 데이터를 안전하게 전달받고 싶기 때문에 반드시 웹사이트에 "https://" 를 사용해야한다.
  • webView.load(URLRequest(url:url)) : 해당 url에서 새로운 URLRequest 오브젝트를 만들고 로드할 webView에 제공한다.
  • webView.allowsBackForwardNavigationGesture = true : webView에서 사용자가 왼쪽 또는 오른쪽에서 스와이프하여 뒤로갈 수 있도록 허용한다. safari 브라우저에서 많은 사람들이 사용하는 기능이므로 사용가능하도록 하는 것이 좋다.

0개의 댓글