본문 바로가기
🌱

SearchBar/URL 연결

by 방우 2022. 7. 30.

1. 유효한 URL인지 판별하기

2. URL보여주는 변수만들기

3. searchBar에 해당 URL 넣어보는 기능 만들기

 

웹을 보여주기 위해서 import webKit 해주기

 

import UIKit
import WebKit

class AssignmentWebViewController: UIViewController {
    var destinationURL = "https://www.daum.net"
    
    @IBOutlet weak var testTextView: UITextView!
    
    
    @IBOutlet weak var searchBar: UISearchBar!
    @IBOutlet weak var webView: WKWebView!
    @IBOutlet weak var toolBar: UIToolbar!

    override func viewDidLoad() {
        super.viewDidLoad()
        toolBar.barTintColor = .lightGray
        
        searchBar.delegate = self
        // 확장한 기능을 해당서치바에 연결해주는 거임
        openWebPage(urlstr: destinationURL)
        // 아래 작업이 끝나면 실질적으로 url 연결
    }
    
    //MARK: 툴바 아이템마다 기능 넣어주기
    @IBAction func gobackButtonClicked(_ sender: UIBarButtonItem) {
        if webView.canGoBack {
            webView.goBack()
        }
    }
    
    @IBAction func reloadButtonClicked(_ sender: UIBarButtonItem) {
        webView.reload()
    }
    
    @IBAction func goFowardButtonClicked(_ sender: UIBarButtonItem) {
        if webView.canGoForward {
            webView.goForward()
        }
    }
    
    //MARK: URL 연결
    func openWebPage(urlstr: String) {
        // 먼저 유효한 URL값인지 판단하기
        // let urlComponents = URLComponents(string: url) -> 생각쓰~
        guard let url = URL(string: urlstr) else {
            print("Invaild URL")
            return
        }
        
        // 이 url을 보여주세요~
        let request = URLRequest(url: url)
        webView.load(request)
    }
}

//MARK: searchBar에 이런기능을 넣어주세요
extension AssignmentWebViewController: UISearchBarDelegate {
    func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
        guard let text = searchBar.text else {
            print("서치바에 텍스트 없음")
            return
        }
        openWebPage(urlstr: text)
    }
}

 

'🌱' 카테고리의 다른 글

separator inset 적용  (0) 2022.08.08
URL textView에 연결  (0) 2022.07.30
Notification 앱푸쉬  (0) 2022.07.30
switch 배경색과 여백  (0) 2022.07.21
sentEvent  (0) 2022.07.21