レスポンダチェーンを知ろう
ユーザーがこのメニューバーをタップするとそれはどこに行きどう見極めるのでしょうか
それにこたえるのにレスポンダチェーンが必要です
最初はUIエレメントのレスポンダから始まります。 そしてView, Controller , App Delegateへ辿っていく
好きなものをチェーンに挿入することもできます
そのためには
次のレスポンダをキャプチャして、新しいレスポンダにアサインしていきます
Macのアプリを使ったなら気づかずに活用したと思います
メモをとるようなアプリがあるとこのようになります
ユーザーがメニューからペーストを選ぶとテキストをノートに追加します
新しいノートが左側に出てくるわけです。
テキストフィールドがFirstResponderである TableRawがファーストレスポンダーなら、それが何かをデベロッパーが決める必要があります
View
ContainerView
Window
最終的には何も行われないということになるとfanctionが実行されます デフォルトではキーが押されたビープサウンドを鳴らします
iOSでは何も起きません
通常コントローラにはデリゲートプロパティがあります nil型やオブジェクトを気にせずに呼ぶ事ができます
iOSの中ではViewControllerをEmbedすることができる ダイレクトにデリゲートを指定するのではなくてParentviewcontrollerにターゲットのないものをレスポンダチェーンとして渡せる
もう一つの例を見てみましょう iOSのアプリではViewがある、
通常デリゲートがある
こうすると、prepare for segueのセットアップは必要ありません
コンテンツを隠す(ログインの後ろに隠す)ということを良くします
ParentViewControllerがログインを表す
Appleからこの事についてかなり詳しく書いています。OS 10, 10.4以前のものになりますが。