출처
앱 12개를 만들며 배우는 Swift4 & iOS11 아이폰 iOS 개발 강좌
주요 내용
- Single View App > MiniBrowser 프로젝트 만들기
Main.storyboard
- Segment Control 추가 > Segment : 4개 > 각 segment 이름 바꾸기
- 상단에 text View, 하단에 tool bar 추가 > tool bar에 bar button 4개 추가 > flexible space bar button을 끝과 사이에 각각 (총 6개) 추가 (정렬 효과)
- bar button > system item : rewind / fast forward / stop / refresh로 각각 추가
- webkit view 가운데 화면에 추가
- activity indicator view 추가
viewController.swift
- bookMarkAction 추가
- class에 UITextFieldDelegate 추가 > main.storyboard 에서 viewController에 연결 (나 자신에게 연결)
- textFieldShouldReturn 추가 > https:// 없어도 이동 가능하도록 추가
- WKNavigationDelegate 참고
완성 예시
코드
1) ViewController.swift
import UIKit
import WebKit
class ViewController: UIViewController, UITextFieldDelegate, WKNavigationDelegate {
@IBOutlet weak var bookMarkSegmentedControl: UISegmentedControl!
@IBOutlet weak var urlTextField: UITextView!
@IBOutlet weak var mainWebView: WKWebView!
@IBOutlet weak var spinningActivityIndicator: UIActivityIndicatorView!
override func viewDidLoad() {
super.viewDidLoad()
let initialURL = "https://www.facebook.com"
let myURL = URL(string:initialURL)
let myRequest = URLRequest(url:myURL!)
mainWebView.load(myRequest)
urlTextField.text = initialURL
mainWebView.navigationDelegate = self
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
spinningActivityIndicator.startAnimating()
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
spinningActivityIndicator.stopAnimating()
}
@IBAction func bookMarkAction(_ sender: Any) {
let bookMarkURL = bookMarkSegmentedControl.titleForSegment(at: bookMarkSegmentedControl.selectedSegmentIndex)
let urlString = "https://www.\(bookMarkURL!).com"
mainWebView.load(URLRequest(url: URL(string:urlString)!))
urlTextField.text = urlString
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
var urlString = "\(urlTextField.text!)"
if !urlString.hasPrefix("https://") {
urlString = "https://\(urlTextField.text!)"
}
urlTextField.text = urlString
mainWebView.load(URLRequest(url: URL(string:urlString)!))
textField.resignFirstResponder()
return true
}
@IBAction func goBackAction(_ sender: Any) {
mainWebView.goBack()
}
@IBAction func goForwardAction(_ sender: Any) {
mainWebView.goForward()
}
@IBAction func stopLoadingAction(_ sender: Any) {
mainWebView.stopLoading()
}
@IBAction func reloadAction(_ sender: Any) {
mainWebView.reload()
}
}
'iOS' 카테고리의 다른 글
[Swift] 스위프트 실전 프로젝트 6. Select Car (0) | 2020.07.13 |
---|---|
[Swift] 스위프트 실전 프로젝트 5. Flight Booking (0) | 2020.07.12 |
[Swift] 스위프트 실전 프로젝트 3. 회원가입하기 (0) | 2020.07.06 |
[Swift] 스위프트 실전 프로젝트 2. 디지털 액자앱 만들기 (0) | 2020.07.04 |
[Swift] 스위프트 실전 프로젝트 1. 도서 관리 프로그램 만들기(3) (0) | 2020.07.03 |
댓글