0

わかりましたので、これで本当に頭痛がして、1日のほとんどが無駄になりました! 少しの進歩で!

アプリ:

  • 各タブには独自のView Controllerと関連するビューがあるタブバーアプリケーションがあります。
  • タブ1で、ユーザーがボタンをクリックして別のビューに移動すると、次のように実装しました: [self.view addsubView:view 2]
  • このようにビューを追加し続けます
  • ユーザーがそのビューから前のビューに戻った場合、リンクされた戻るボタンでそれを取り除きます[self.view removefromsuperview]

右!それはすべて正常に機能します...ここで頭痛が来ます。

ユーザーが次の操作を完了した場合: - タブ 1 の view2 に移動する - タブ 2 に切り替える - 再びタブ 1 に戻る

すべてのサブビュー (viewControllers からロードされたもの) を削除して、タブ 1 に view1 が表示されるようにしたいと思います。

それを得る?

私は次のことを試しました:

for(UIViewController *subview in [self.view subviews]) {
    if([subview isKindOfClass:[View2Controller class]]) {
        [subview.view removeFromSuperview];
    } else {
        // Do nothing
    }
}

view2 を削除しようとしています。(このメソッドは view1 で呼び出されますviewWillAppear- 呼び出されますが、view2 は削除されません)

何か案は??この問題に関するヘルプをいただければ幸いです

乾杯

4

1 に答える 1

0

各タブの UINavigationController ベースのビュー アーキテクチャに切り替えます。次に、viewController をプッシュ アンド ポップするだけで、システムにその役割を任せて、メモリの管理を支援できます。また、「一番下」にジャンプしたい場合は、 popToRootViewController を呼び出すだけです。

また、UIViews と UIViewControllers は異なるクラスであり、同じ意味で使用しないでください。subviews は、UIViewControllers ではなく、UIViews の配列です。

于 2009-11-24T19:07:58.643 に答える