Swift 独学プログラミング プログラミング初心者のUINavigationBarの戻るボタン〜表示されない編〜

あっ どうも子へびです。

この記事一度吹っ飛んでしまい、やるせなさしか残っていない子へびです。




梅雨に入り傘が手放せない時期ですが、子へびは小雨ならほとんど傘をさしません。誰かドローンのように頭の上に浮遊する傘開発してくれませんかね?あと日傘バージョンも!すっごく便利だと思うんだけどな〜。





さて子へびが記事を更新できないのは次の画面に値を渡してあげられなかったっという穴に落ち進まず記事の更新ができなかったのですが、週末Master松陰の講座によりテクニックを教えてもらったので無事解決の糸口を掴みました。そんなうかれポンチな子へびに次なるなんとも情けない事情が発生しました。

子へび

あれ〜どおしてUINavigationBarの戻るボタンがMainstoryboard上には出てくるのにシュミレーターで実装すると消えちゃうのかな?

戻るボタンのカスタマイズの練習もしていた子へびがなぜだかボタンが実装すると消えてしまうという現象に襲われ丸2日code見直したり設定見直したり調べてみたりしたけれども、なんと反映されなかった理由が・・・

Master松陰

白状しなさい!

っとMaster松陰に詰め寄られても情けなさすぎて言えなかった・・・。

でも子へびみたいな初心者にはためになるかもしれないし?!恥を忍んで白状します!この現象はcodeが間違ってた訳でも、設定が間違っていた訳でもありません!

画像

子へびがやってしまっていた失敗画像です。わかりますか?

そうなんです!ズバリ!EntryPointの位置です!

子へび

気づかなかった〜気づけなかった〜。

と言うのが本音です。

理由としてはこのコントローラ自体Rootsから派生しているからとういう理由かな?っというとMaster松陰から違うと言われそうだけど、みなさまEntryPointの位置にはくれぐれもおきおつけください(笑)EntryPointの位置はRootsに置かなければなりません。(笑)

Maeter松陰にこの記事読まれたら確実に大目玉だな・・・。

子へび

とほほ・・・。




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

あっ どうも子へびです。

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




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

子へび

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

Master松陰

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

子へび

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

子へび

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

Master松陰

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

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

子へび

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

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

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

子へび

とほほ・・・。