NSTimer&UINavigationControllerに関する質問
Posted: 2010年9月11日(土) 00:07
いつもお世話になっております。
iPhone / Objective-C で
作成中のアプリに関する質問です。
見せられないものが含まれており
プロジェクトごとアップすることが出来ませんので
UI 構造等を記述させていただきます。
わかりづらくて申し訳ありませんが、よろしくお願いします。
◆UI 構造 ---
① < 起動時 リスト表示シーン>
RootViewController(UITableViewController)
+ RootNavigationController(UINavigationController)
画面にはナビゲーションバー(上部)とテーブルが表示されています。
テーブルの任意のセルをタップすると、② < 画像描画シーン >に遷移します。
② < 画像描画シーン >
(上記の)RootNavigationController
+ ImgViewController(UIViewController)
+ GLImgView(UIView)
上部にナビゲーションバー(左側に①へ戻るボタンが自動で表示される)が
表示され、メイン画面には画像表示用のビューがあります。
-----
という構造で、②からナビゲーションバーの①に戻るボタンを押した際、
そのこと(戻るボタンを押したこと)を検知するのに、
GLImgViewのdealloc()を使用し、その中でrelease処理等を行うようにしています。
----- で、ここからが問題 -----
②のGLImgViewで画像をアニメーション表示させる為に、NSTimerを生成~開始すると
GLImgViewのdealloc()が呼ばれなくなり、ナビゲーションバーの戻るボタンで①に戻っても、
タイマーに設定した関数が呼ばれ続けます。タイマーの停止自体を、このdealloc()の中で
行うつもりでいましたので、処理の流れとして息詰まりました。
①に戻るボタンを押したことを検知し、
そこでタイマーを切る(もしくはタイマーを切るフラグをONにする)ようにしようかと
検索してみたものの、上記構造でナビゲーションバーに自動的に追加される「戻る」為の
ボタンの押下を取得する方法(どこに記述するかも含め)がわかりません。
①の方はxibを持たずに実装しています。
このような状態なのですが、
タイマーをdeallocで停止させる方法(これはOS側参照とかの問題で無理なのでしょうか)
か、ナビゲーションバー上のボタン(戻るボタン)の押下チェックを行う方法を、ご教授頂ければと思います。
よろしくお願いします。
iPhone / Objective-C で
作成中のアプリに関する質問です。
見せられないものが含まれており
プロジェクトごとアップすることが出来ませんので
UI 構造等を記述させていただきます。
わかりづらくて申し訳ありませんが、よろしくお願いします。
◆UI 構造 ---
① < 起動時 リスト表示シーン>
RootViewController(UITableViewController)
+ RootNavigationController(UINavigationController)
画面にはナビゲーションバー(上部)とテーブルが表示されています。
テーブルの任意のセルをタップすると、② < 画像描画シーン >に遷移します。
② < 画像描画シーン >
(上記の)RootNavigationController
+ ImgViewController(UIViewController)
+ GLImgView(UIView)
上部にナビゲーションバー(左側に①へ戻るボタンが自動で表示される)が
表示され、メイン画面には画像表示用のビューがあります。
-----
という構造で、②からナビゲーションバーの①に戻るボタンを押した際、
そのこと(戻るボタンを押したこと)を検知するのに、
GLImgViewのdealloc()を使用し、その中でrelease処理等を行うようにしています。
----- で、ここからが問題 -----
②のGLImgViewで画像をアニメーション表示させる為に、NSTimerを生成~開始すると
GLImgViewのdealloc()が呼ばれなくなり、ナビゲーションバーの戻るボタンで①に戻っても、
タイマーに設定した関数が呼ばれ続けます。タイマーの停止自体を、このdealloc()の中で
行うつもりでいましたので、処理の流れとして息詰まりました。
①に戻るボタンを押したことを検知し、
そこでタイマーを切る(もしくはタイマーを切るフラグをONにする)ようにしようかと
検索してみたものの、上記構造でナビゲーションバーに自動的に追加される「戻る」為の
ボタンの押下を取得する方法(どこに記述するかも含め)がわかりません。
①の方はxibを持たずに実装しています。
このような状態なのですが、
タイマーをdeallocで停止させる方法(これはOS側参照とかの問題で無理なのでしょうか)
か、ナビゲーションバー上のボタン(戻るボタン)の押下チェックを行う方法を、ご教授頂ければと思います。
よろしくお願いします。