Swift

Swift:ふたつのView制御に問題

ふたつ目のViewにすべてのEXIFを表示した後、編集しようとすると問題が発生しました。

セルがクリックされたとき、用意したIBActionのメソッドを実行すると、直前にreloadするまで使った変数が初期値に戻ることが判明しました。原因を調査しようとしていますが、それらしいものがなく、もしかするとこれはシステムかXcodeのバグでworkaroundがないかもしれません。

思いつくことをサンプルプログラムでも確認したのですが、思わしくありません。単純にやってもおかしくなります。

ひとつだけ調べきっていないのがinitで、もしかするとこれかもしれません。

うーむ・・・・・という感じです。

追記:再調査した結果、作りに起因する問題のようなのでもう一度調べ直すことにします。このサンプルプログラムのIBActionの前後を参照

追記:おかしいと推測される箇所と対応状況の整理

  • storyboardに取り込んだObject・・・main viewと2nd viewの両方のクラス?
  1. 2nd viewからObjectを削除した。
  2. 2nd viewがあるクラスのrequired init?(coder: (NSCoder!))を復活させた。
  3. main viewのObjectの接続はサンプルプログラムを参考にいくつかのパタンを試行中。
  • 現在の問題は2nd viewのクラスからmain viewの変数が参照できていない。self.representedObject as! mesaGPS が参照できていないように見える?
  • 上記に掲載したサンプルコードだと、Messageという受け渡しのためのクラスを別に作成しており、main viewに取り込んでいない違いがある。一体化したサンプルを作ってみたらどうか?振り出しに戻ってひとつひとつ確認する方法をとらないと、解決策が見えてきそうにない。

追記:やり方判明。

Categories: Swift, 技術