0

ウィンドウに、ウィンドウのルートビューコントローラーとして uinavigation コントローラーを追加しています。最初のビューコントローラーがルートビューコントローラーであるとします。この最初のビューコントローラーでは、API を呼び出して UI を更新するために 15 秒の繰り返し間隔で nstimer を起動しています。ビューでこの起動されたタイマーを適切に無効にしています。しばらくすると、たとえば150秒後に別のビューコントローラーにプッシュしています。

Firstviewcontroller と secondviewcontroller には、それに応じてビューをポップするための戻るボタンがあります。2番目のviewcontrollerのビューが読み込まれ、クラス名がログに記録されました。ナビゲーションコントローラーがfirstviewcontrollerからsecondviewcontrollerにプッシュされている間、ログが表示されます。しかし、secondviewcontrollerの戻るボタンをクリックすると、ログは[firstviewcontroller backbutton]と最初のviewcontrollerイベントが実行中です。つまり、secondviewcontroller が表示されず、画面が黒くなります。

私のプロジェクトはアークフィードです。

これはばかげた質問かもしれませんが、本当に私の頭が燃えています!.

4

1 に答える 1

1

以前にこの問題と同じように直面しました。NSRunLoop で NSTimer を実行していることを願っています。コードの一部を削除してください。

 NSRunLoop *runLoop = [NSRunLoop mainRunLoop];
   [runLoop addTimer:timer forMode:NSDefaultRunLoopMode];
   [runLoop run];
于 2013-12-03T09:51:16.733 に答える