Hatena::Groupiphone-dev

iPhoneアプリ開発まっしぐら★ このページをアンテナに追加 RSSフィード

引っ越し後の日記はコチラです

tokoromのその他の日記

2010-01-10

UIKit本への追加コンテンツと補足情報をこちらに追加していきます

| 02:40 | はてなブックマーク -  UIKit本への追加コンテンツと補足情報をこちらに追加していきます - iPhoneアプリ開発まっしぐら★

◆UIKit本 追加コンテンツ&補足情報◆

f:id:tokorom:20100111023538j:image

ここには「iPhoneプログラミングUIKit詳解リファレンス」に載せきれなかった情報や、補足/訂正情報を掲載していきます。


  • UIKit本の内容自体への補足/訂正は → コチラ

  • 追加コンテンツ【Objective-C 2.0 コーディング解説編】 → コチラ

  • 追加コンテンツ【データ管理クラス解説編】 → コチラ

UIKit本の内容自体への補足/訂正

| 02:49 | はてなブックマーク -  UIKit本の内容自体への補足/訂正 - iPhoneアプリ開発まっしぐら★

UIKit本追加/補足 > UIKit本の内容自体への補足/訂正



ここには「iPhoneプログラミングUIKit詳解リファレンス」の内容自体への補足/訂正情報を掲載していきます。


画面遷移時に呼ばれるメソッドの補足

| 04:07 | はてなブックマーク -  画面遷移時に呼ばれるメソッドの補足 - iPhoneアプリ開発まっしぐら★

UIKit本追加/補足 > UIKit本の内容自体への補足/訂正 > 画面遷移時に呼ばれるメソッドの補足


UIKit本の P.116 で、画面遷移時にUIViewControllerの状態監視用の各メソッドが、

  1. ■遷移先の画面のviewDidLoad(読み込み済みだった場合はこれを省く)
  2. ◇遷移元の画面のviewWillDisappear
  3. ■遷移先の画面のviewWillAppear
  4. ◇遷移元の画面のviewDidDisappear
  5. ■遷移先の画面のviewDidAppear

という順番でコールされると記載している。

f:id:tokorom:20100111043005p:image

しかし、これはUINavigationControllerのpushViewController:animated:メソッドによる画面遷移の場合の話だ。

これが、UIViewControllerのpresentModalViewController:animated:メソッドによる画面のモーダル表示の場合には少し変わってくる。

具体的には以下のとおりだ。

  1. ■遷移先の画面のviewDidLoad(読み込み済みだった場合はこれを省く)
  2. ■遷移先の画面のviewWillAppear
  3. ◇遷移元の画面のviewWillDisappear
  4. ■遷移先の画面のviewDidAppear
  5. ◇遷移元の画面のviewDidDisappear

このように、画面遷移時とモーダル表示時の場合にはこれらのメソッドがコールされるタイミングが変わってくるので注意が必要だ。

f:id:tokorom:20100111043006p:image

特に、

  1. 遷移元画面のviewWillDisappearで変数Aにnilを設定して
  2. 遷移先画面のviewWillAppearで変数Aにselfを設定する

というようなコードを書いて、変数Aにカレントの画面を常に代入するなんて処理になっているとまずいことが起こる。画面をモーダル表示する場合にはこれらのメソッドが呼ばれるタイミングが逆転するので、思いもよらず変数Aがnilになってしまうのだ。

いずれにせよ、場合によってviewWillAppear/viewWillDisappearの呼ばれる順番が変わってくる可能性があるということを頭の片隅に置いておいたほうが良さそうだ。

myumyu2011/04/20 09:25UIKit詳解リファレンスを見てアクセスしたのですが
追加コンテンツのリンクが切れているようです。
今後、公開予定はありますか?

tokoromtokorom2011/04/20 10:27リンク切れ失礼致しました。
サーバを移管した後、訂正をできておりませんでしたので、ただ今、修正させていただきましたので、お手数ですがもう一度ダウンロードをお願いします。
ご指摘ありがとうございます!

myumyu2011/04/20 11:56さっそく対応していただきありがとうございました。
助かります。

PandaPanda2011/05/15 08:19リファレンスを参考にさせていただいているのですが、
UINavigationControllerのpushViewControllerで2階層遷移後(A→B→C)、
Aまで戻るとき、B画面でViewWillDisappearが呼ばれません。
そういう仕様なのでしょうか?

StevenSteven2012/08/09 01:51Lot of smarts in that psontig!

dnhiyzdnhiyz2012/08/09 20:54ODUT7s , [url=http://fwvorbyxnpgq.com/]fwvorbyxnpgq[/url], [link=http://acrfzafvzhaa.com/]acrfzafvzhaa[/link], http://jrjcdxrbuhey.com/

kkpfvtskkpfvts2012/08/10 04:09BxhGor <a href="http://tktagzmmdeys.com/">tktagzmmdeys</a>

xsifaapxtxsifaapxt2012/08/12 10:20kl1fBF , [url=http://nobcivkucvaj.com/]nobcivkucvaj[/url], [link=http://rnllvizmreux.com/]rnllvizmreux[/link], http://kwopsaywcwpo.com/

a_ishida_mma_ishida_mm2014/07/30 19:47お忙しいところ失礼します。
本日tokorom様UIKit詳細リファレンスの本を購入したのですが、
参考のドキュメントのURLから資料がダウンロードできない状況です。
http://data.main-loop.com/iphone_docs/chapter01.pdf
http://data.main-loop.com/iphone_docs/chapter02.pdf
お手数ですが、ご案内いただくこと可能でしょうか。
何卒、よろしくお願いいたします。