ある動画を見ていて、「あれ?こんなことできるの?」と思ったことがあったのでメモします。
(もしかして当たり前でしょうか?だとしたら知らなかった自分は大いに反省します。)
storyboard上に2つのViewControllerを表す画面があり、ソースとしては同じViewControllerクラスを参照します。
※「次へ」ボタンは次の画面に移動できるようにセグエでつなげているだけなので気にしないでください。
参照するクラスは共通なのですが、
左の画面では
ViewController1用ラベルを表示したいがViewController2用ラベルはいらない
右の画面では
ViewController2用ラベルを表示したいがViewController1用ラベルはいらない
といった場合に普通に値を設定しようとすると下記のようなエラーになります。
この場合どうすれば良いのかというと、@IBOutletの変数をOptionalにすれば良いようです。
こうすると、
のように上手く画面に合わせて表示を切り替えることができました。
あんまりやりすぎると画面それぞれで不要な変数が増えてしまったり、場合分けが出てきてしまうことがあるかもしれませんが、
単純に処理は全く一緒だけれども表示内容が少しだけ違うといった場合に有効なことがあるのかもしれませんね。
Xcodeが自動で生成しているものなので何も考えずに使っていましたが、新しい発見をすることができました。