스위프트에서 HTML을 사용하여 WKWebView에 삽입할 수 있습니다.
guard let detailItem = detailItem else { return }
let html = """
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style> body { font-size: 150%; } </style>
</head>
<body>
\(detailItem.body)
</body>
</html>
"""
webView.loadHTMLString(html, baseURL: nil)
func loadHTMLString(_ string: String, baseURL: URL?) -> WKNavigation?
: 지정된 HTML 문자열의 내용을 로드하고 탐색합니다탭바컨트롤러에 탭 추가
두번 째 탭을 스토리보드에 삽입할 수 있지만 유지관리를 하는데 좋지 않습니다. 왜냐하면 그렇게 하려면 스토리보드에서 뷰컨트롤러를 복제해야 하기 때문입니다.
AppDelegate
의 didFinishLaunchingWithOptions
의 메서드는 앱이 로드를 완료하고 사용할 준비가 되었을 때 iOS에 의해 호출됩니다.
var window: UIWindow?
if let tabBarController = window?.rootViewController as? UITabBarController {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "NavController")
vc.tabBarItem = UITabBarItem(tabBarSystemItem: .topRated, tag: 1)
tabBarController.viewControllers?.append(vc)
}
UIStoryboard
클래스를 사용하여 Main.storyboard파일을 참조합니다. 번들이 nil
이라는 의미는 현재 앱번들을 사용한다는 의미입니다.tag
를 사용하여 탭바를 구분할 수 있습니다.viewControllers
배열에 새로운 뷰컨트롤러를 추가하면 탭표시줄에 표시됩니다.iOS Depolyment Target을 13이하로 개발하는 경우
@available을 사용하여 타겟 버전 낮추는 방법
xcode11 에서 iOS13 미만의 타겟을 빌드하는 방법
// SceneDelegate.swift
@available(iOS 13.0, *)
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
...
}
// AppDelegate.swift
var window: UIWindow?
@available(iOS 13.0, *)
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
...
}
@available(iOS 13.0, *)
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
...
}
Using the viewport meta tag to control layout on mobile browsers - 웹 페이지를 작은 화면에 맞추기 위한 방법