Swift 独学プログラミング プログラミング初心者のnavigationcontrollerを使用した画面遷移〜値渡し編〜

あっ どうも子へびです。

先日モツ煮食べ放題480円の宣伝を掲げていたお店が夏に向けもう一つ新しい宣伝を掲げていました。その名も『餃子食べ放題980円』です。(笑)餃子にビールは最高ですが食べ放題と言われると一体何個食べられるのでしょうか?子へびは餃子大好きですが挑戦するにはちょっと考えてしまいますね(笑)でもこんなに暑くなると餃子にビールは最高です!




現在navigationcontrollerを使用した画面遷移の設定とその際にtable viewで選択された値を次の画面に渡したいという課題に取り組んでいる子へびですが、その際また値をうまく渡せないと言う穴に落ち現状をMaster松陰に報告した際の会話です。

子へび

う〜〜〜む。どうして値は取得しているのに渡すことができないのかな??

Master松陰

子へびのその発言に問題がありますね。今の現状を説明してみなさい。

子へび

やばい一番苦手なやつだ。現状説明・・・。うまく言葉で表現できないし、しかも間違っている時のMaster松陰の顔がまた怖いんだよな・・・。でも仕方ない説明してみるか。

子へび

えーと。table viewで選択させたセルを通じて値を取得しています。セルをタップすると次の画面に遷移するようになっているのでその遷移のタイミングで値を次の画面に渡してその値を表示させたいのです。でもその値が次の画面に表示されないし、そもそも値が渡っていないようです。

Master松陰

その値が渡っていないと言う考え方がそもそも違っているのです。TableViewのタップ時に値を渡すのではなく、ViewController の prepareで、遷移先のViewControllerに値をセットするのです。なので値を渡すわけではなく、次の画面が開いた時には既にプロパティとして値がセットされているのです。

後日Master松陰本人から物言いが入ったので訂正です。とほほ・・。

子へび

??? ・・・・ ??? ・・・・

この言葉の違いわかりますか?

この違いを理解するのにちょっと時間がかかった子へびです。UIの動きとデータの動きがどうしてもごちゃごちゃになってしまうためきっとcodeもグチャクチャになってしまったのだと思います。それぞれ切り離して考える必要があります。そして次なる問題が・・・。表示させたいデータと処理させたいデータが別々に存在し、また穴に落ちている子へびです。自分の理想通りに作ろうとすると次から次へ問題が生じます。

子へび

とほほ・・・。




コメントを残す

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

CAPTCHA