2

TabBarItems値やコンテンツがないアプリで、を簡単に有効または無効にできます。チャームのように機能します。この特別なビューは30回以上コンテンツで動的に満たされるため、この機能またはコンテンツがアプリ全体の他のビューで利用できることを示すために、すべてのタブを保持したいと思います。

TabBarController私の""にサブクラス化されていDetailViewControllerます。このクラス内で、コンテンツが存在するかどうかを確認し、viewWillAppearイベントを渡すことでコンテンツを遅延読み込みします(存在しないタブコンテンツの読み込みやインターネット接続の確認などを防止します)。速くて良い働きをします。

問題は、はるかに設計上の光学的な問題です。初めてビューをロードすると、有効化と無効化が機能しますが、画像は「淡色表示」されません。2番目のビューをロードして同じ手順を実行すると、無効になっているタブが「暗く」なります...何が欠けていますか?

4

1 に答える 1

0

self結果が予測できない可能性があるため、viewWillAppearを呼び出す前によく考えます。

// BAD IDEA
- (void)viewDidLoad {
    ...
    [self viewWillAppear];
    ...
}

// OK
- (void)viewWillAppear {
    ...
    [super viewWillAppear];
    ...
}

...例外は、同じ名前のメソッド内から[superviewWillAppear]を呼び出すことです。

一般に、Appleのコールバックの起動はAppleに任せるのが最善です。viewWillAppearにある機能をリファクタリングしてから、viewDidLoad、viewWillAppear、viewDidAppearで必要なものだけを呼び出してみてください。この問題は、機能の各ビットを分解するときに発生する可能性があります。

于 2010-08-30T09:48:04.753 に答える