view contoroller 생성

view contoroller 와 tab bar 연결
키보드의 control 을 누르고 생긴 레이저를 view contoroller 와 이어준다.

이렇게 하면 탭 바 를 중간에 두고 view를 왔다갔다 할 수 있는 view들을 만들 수 있다.
File -> new -> file from templete 으로 cocoa templete을 VideoViewContoroller를 만든다.

새로 만든 view에 VideoViewContoroller를 연결한다.
( view와 class를 연결하는 위치 => identify inspector )
꼭 view를 만들자 마자 연결해야한다.

path에서 값이 존재할 경우 String형으로 반환한다 하지만 값이 일치하지 않거나 존재하지 않을 경우 nil을 반환하므로 옵셔널 String 형으로 선언하는 것이다

아직 videoPath를 사용하지 않아 불필요한 변수를 제거하라는 Xcode의 경고이다.

func present(
_ viewControllerToPresent: UIViewController,
animated flag: Bool,
completion: (() -> Void)? = nil
)
이 부분에서 엔터키를 입력시 code 블록이 생기게 된다.

playerController.player = player
.player는 playerController프로터티 이고 뒤 player는 위에서 만든 상수 player이다
self.present(playerController, animated: true)
player.play()
self.present(playerController, animated: true) {
player.play()
}
매개 변수
- viewControllerToPresent
현재 뷰 컨트롤러의 콘텐츠 위에 표시할 뷰 컨트롤러.- flag
프레젠테이션을 애니메이션화하려면 true 쓰고 그렇지 않으면 false 써야한다.- completion
프레젠테이션이 끝난 후 실행될 블록을 지정하는 매개변수다. 이 블록은 값을 반환하지 않으며, 매개변수도 없다.
이 매개변수에는 nil을 지정할 수도 있다.
내가 만든 함수가 아닌 부모클래스에서 만든 함수이기 때문에 self. 을 붙여 명시적으로 사용한다.
추가적으로 내가 부모클래스에서 함수를 가져와 재정의 하고자 하면 super를 붙여 사용해야 한다.
self.present(playerController, animated: true)

deprecated -> 언제 사라지질 모르는 것이기 때문에 사용하면 안된다.


guard let url = URL(string : "https://velog.io/@kim_jh/posts") else { return }
import UIKit
import WebKit
/// WebViewController는 `WKWebView`를 사용하여 웹 페이지를 로드하는 뷰 컨트롤러입니다.
class WebViewController: UIViewController {
/// 웹 페이지를 표시하는 `WKWebView` 인스턴스
@IBOutlet weak var WebView: WKWebView!
/// 뷰가 로드될 때 호출됩니다. 초기 화면에서 `velog` 페이지를 로드합니다.
override func viewDidLoad() {
super.viewDidLoad()
// 초기 로드: velog 페이지를 WebView에서 로드
loadWebPage(urlString: "https://velog.io/@kim_jh/posts")
}
/// 버튼 클릭 시 호출됩니다. 지정된 URL을 WebView에서 로드합니다.
///
/// - Parameter sender: 버튼을 눌렀을 때 전달되는 버튼 객체.
@IBAction func btnWebVelog(_ sender: UIButton) {
// 버튼 클릭 시에도 동일한 페이지를 로드
loadWebPage(urlString: "https://velog.io/@kim_jh/posts")
}
/// 주어진 URL 문자열을 안전하게 `WebView`에 로드합니다.
///
/// - Parameter urlString: 로드할 웹 페이지의 URL 문자열.
/// - If the URL string is invalid, a message will be printed and the method will return without loading the page.
///
/// - Returns: None. Loads the web page in the `WKWebView` if the URL is valid.
func loadWebPage(urlString: String) {
// 주어진 URL 문자열을 URL 객체로 변환
guard let url = URL(string: urlString) else {
// URL이 유효하지 않은 경우, 오류 메시지를 출력하고 종료
print("유효하지 않은 URL입니다.")
return
}
// URL을 기반으로 요청을 생성하고 WebView에 로드
let request = URLRequest(url: url)
WebView.load(request)
}
}

Legacy = 빠른 수정이 필요한 페이지, 코드등을 뜻한다.

import UIKit에 포함되어있지 않은 메소드라 새로 import해주어야 한다 -> import WebKit