1

6にアップグレードして以来、iOSアプリで問題が発生しています。これまで隠されていた何かが間違って構成されていると確信しています。

私はストーリーボードを利用しており、最初のビューは通常の古いバニラビューコントローラーと同じです。これは私のログインページです。「ログイン」ボタンをクリックすると、「ログアウト」ボタンのあるタブを含む多数のタブが内部にある「タブバーコントローラー」に移動します。

編集:ログインViewControllerが「MODAL」セグエをTabBarControllerにプッシュしないようにすることが重要です。

「ログアウト」ボタンは実行されます

[self dismissModalViewControllerAnimated:YES];

ログインビューに送り返されます。その後、ユーザーは先に進んで再ログインすることができます...

問題は、ログインからタブビューに移動するたびに、いくつかの重複が発生しているように見えることです。私がこれを知っている理由は、タブビューの1つに

    [[NSNotificationCenter defaultCenter] removeObserver:self];

// Register observer to be called when download of data is complete
[[NSNotificationCenter defaultCenter] removeObserver:self name:OBJECTS_LOADED_NOTIFICATION object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
                                        selector:@selector(coreDataViewController_downloadDataComplete:)
                                            name:OBJECTS_LOADED_NOTIFICATION
                                          object:nil];

これは、すでにページにあるオブザーバーを削除し、新しいオブザーバーを追加することになっています。しかし、それはオブザーバーを何度も何度も追加し続けます。これは、メモリのどこかにページの複数のバージョンがあると私に信じさせます。

誰か助けてくれませんか!?私はこの問題を4日間続けて解決しようとしましたが、結果はありませんでした。それはめちゃくちゃばかげていることだと確信していますが、私は一生の間何を理解することができません。

ありがとうマット

編集:リクエストごとにコードを追加しました... :-)プロジェクトの一部を投稿するよりも、プロジェクト全体を公開する方が簡単だと思いました。

https://github.com/MCKRUZ/iPhone

4

1 に答える 1

0

わかりました、私はこの問題を解決/回避しました。基本的には、ログアウトして再度ログインするたびにVCを再作成しますが、使用しているオブジェクトコンテキストはページ上ではなくサービス内にあるため、コードを作り直して、それが行われるかどうかは関係ありません。 。

それでも、アップルが使用されていないVCのインスタンスを削除しないのは奇妙な動作です....私はpageDidUnloadを見逃しています...

于 2012-10-05T13:33:33.413 に答える