未分類

デリゲートの基本

投稿日:

他クラスのデリゲートメソッドを自分のクラスで使うにはデリゲートを使う。

1.宣言する(プロトコルを追加する)
2.デリゲートをselfに設定する
3.デリゲートメソッドを書く

————————–

プロトコルを追加したらデリゲートを設定しなくてはならない。

例えば、WKNavigationDelegateプロトコルを追加したら、
viewDidLoad内に「webView.navigationDelegate = self」と書いてデリゲートを設定する。

そうすることで、WKNavigationDelegateプロトコルのメソッド
func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
}

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
}
が、自動で呼ばれるようになる。

viewDidLoad内やAction内でこれらのメソッドを呼んでいないのに、なぜプロトコルのメソッドは勝手に機能するのかはこれが理由。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

AutoLayoutでサイズを比率で指定する

control押しながら、基準にしたいもの(Viewとか)にドラッグ。 Equal HeightまたはEqual Widthsを選択。 Multiplierを50パーセントにしたいなら、0.5に設定。 …

no image

引数と返り値を持つメソッドを作る

//受け取った引数に10を足した数を返すメソッド func add(x:Int) -> Int{ return x + 10 } add(x: 1) //出力:11 add(x: 5) //出力 …

no image

ordinality(of:in:for:)で週の何日目かを求める

ordinality(of:in:for:) 指定された大きな要素内(1週間など)の小さな要素(1日など)の序数を求める。 x月x日はその週の何番目の日付になるかがわかる。 import Founda …

no image

collectionViewで起動時に特定のセルを選択する

起動時に特定のセルを選択した状態にする。 以下をviewDidLoadに書く。 rowの数字で何番目のセルか指定できる。 //起動時に選択されるセル let testIndexpath: IndexP …

no image

TextViewにPlaceholderを追加する簡単な方法

TextViewはTextFieldのようにPlaceholderを設定できないため、自分で実装する必要がある。 ここでは、TextViewの上にLabelを設置し、TextViewの入力判定を行い、 …