この記事では、Webページを表示するアプリを作ります。
プロジェクトを立ち上げる。
- Xcodeを起動し、起動画面から"Create a new Xcode project"を選択。
- 次に、"Single View Application"を選択。
実行する
- プロジェクトが立ち当たったら、どの種類のデバイスでシュミレータを実行するかを選択します。デフォルトではiPhone XRになっているはず。IPad AirやiPhone 8などいろいろ選択することができます。
- 機種を選択したら、実行してみます。左上にある三角のボタン(▶︎)を押すことでコードを実行することができます。Cmd+Rでも同じようにできます。
- 白い画面が現れたら成功。
Webサイトを表示してみる。
今回は、Webページを画面に表示させてみます。
WebKitの導入
ViewController.swift
を開き、import UIKit
の下にimport WebKit
を追加する。
ViewController.swift
import WebKit
画面を作る
WKWebViewを生成。
ViewController.swift
var webView: WKWebView!
viewDidLoad()
の前に以下のメソッドを追加
注:この段階ではまだ動かない。
ViewController.swift
override func loadView() {
webView = WKWebView()
webView.navigationDelegate = self
view = webView
}
- 厳密には
loadView()
をviewDidLoad()
の前に置く必要はない。ViewController
クラスのどこにloadView()
を置いてもいいが、loadView()
がviewDidLoad()
の前に呼ばれるため、実行される順番がわかりやすいように上のような記述にしている。 -
WKWebView
と呼ばれる部品のインスタントを作り、これをwebView
プロパティとひもづける。
デリゲートを実装する。
上記のエラーを解消する。
以下のコードを
ViewController.swift
class ViewController: UIViewController {
以下のように変更する。
ViewController.swift
class ViewController: UIViewController, WKNavigationDelegate {
-
class A: B
とすることで、AクラスはBの機能を実装できる。 -
class A: B, C
となっている場合、AはBを継承していることを示し、Cがデリゲートされていることになる。 - 上記のコードでは、
ViewController
がUIViewController
の子クラスであり、WKNavigationDelegate
をデリゲートすることになる。
表示するURLの設定
viewDidLoad()
のsuper.viewDidLoad()
の後に以下のコードを書く。
ViewController.swift
let url = URL(string: "https://www.apple.com/")! //任意のURL
webView.load(URLRequest(url: url))
webView.allowsBackForwardNavigationGestures = true
- string型の
URL
型に保存。 - URLから
URLRequest
オブジェクトを生成する。 - urlの冒頭は
https://
とすること。
実行
Cmd+Rで実行すると、シュミレータにWebページが表示される。
終わりに
まずはWebページを表示するシンプルなアプリを作ってみました。
これから色々なアプリを作って練習していこうと思います。