1

これは私にはちょっと奇妙に思えますが、私は iOS に慣れていないので、気づいていない明らかなことが起こっている可能性があります (矛盾している部分にアスタリスクを付けています)。

  1. Tab1 と Tab2 の 2 つのタブがあります。
  2. Tab1 は基本ビューです。
  3. Tab2 はマスター/ディテール タイプのデザイン パターンで、UITableViewController がマスター タブで、スクロール ビュー (UIViewController にネストされている) がディテール タブです。
  4. Tab2 のマスター ビューでセルをクリックすると、予想どおり詳細ビューに移動します。
  5. 詳細ビューを下にスクロールし、Tab1 をクリックしてから Tab2 をクリックすると、中断した (下にスクロールした) 詳細ビューがリロードされます。*
  6. ただし、これを行った直後に、Tab1 をクリックしてから Tab2 をクリックすると (前の手順とまったく同じこと)、ページの上部から詳細ビューが再読み込みされます。*

このコードを使用して、ページの上部から詳細ビューをリロードするように指示しました。これは、スクロール ビューを含むビュー コントローラーのクラス内にあります。

-(void)viewDidAppear:(BOOL)animated{
    [self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, 0) animated:NO];
    [self.scrollView setScrollEnabled:YES];
    [super viewDidAppear:animated];
}

最初にタブを切り替えたとき (ステップ 5) に画面上部からスクロール ビューが表示されなかったのに、2 回目にタブを切り替えたとき (ステップ 6) にスクロール ビューが表示されたのは本当に奇妙だと思いました。画面上部からのスクロール ビュー。

何が原因である可能性がありますか?タブを複数回リロードするとき、タブはさまざまな方法でロードされますか?

どんな提案でも大歓迎です!ありがとう!

4

1 に答える 1