Swift

Swift:ふたつのWindowの制御サンプル

サンプルコードです。

追記(5/15/2015):このサンプルコードをベースにすると問題があります。2nd viewのクラスを抜けてしまった後、表示されているEXIFの項目をクリックしてIBActionで編集処理を行おうとしたのですが、main viewのクラスも2nd viewのクラスも変数が初期化され残っていませんでした。後程、正しく動作するものをアップします。

ここにあります。ソースプログラムの中にも書いてありますが、基本的には吉田氏のものを踏襲しています。

  • このサンプルプログラムは、吉田敏幸氏が2014/12/14にリリースしたViewController.swiftをベースにしています。
  • 自分の理解を確認・手助けするためにクラス名や変数名を変更していますが、基本的なフローは全く同じです。
  • Xcodeバージョンの違いによりコンパイルエラーが出たのでプロンプトに従い修正しています。2つの
  • ウィンドウを持つOS Xアプリ(吉田敏幸氏のwebページ)

留意点は次の通り。

1. view間のデータの受け渡しは、直接参照ではNGで、representedObjectで参照ならOKとなった。
2. view間のデータの受け渡しを元々のサンプルプログラムではMessageで、このサンプルではそれを削除しViewController(MainView)で行っている。
3. ポイントは、メインビューのボタンがクリックされたとき、action-modal=>SecondViewをキックさせること。
4. もうひとつのポイントは、セカンドビューのボタンがクリックされたとき、self.dismissController(self)でwindowを閉じること。
5. Main Windowと同じような感じで、SecondViewにcallSecondViewのObjectを入れるとイニシャライズエラーになる。

Categories: Swift, 技術