1

2ページ間を前後にスクロールするように設定されたスクロールビューがあります。各ページは、同じView Controllerのラベルなどに異なるデータを使用します。

「サブ」ビューを終了せずに、各ページのデータを再ロードする必要があります。

たとえば、スクロール ビューで 1 ページに移動します。私の Web サービスは、通知を介して更新されたデータを送信します。ページ 1 に座ったまま、ページ 2 にあるデータをリロードする必要があります... または、少なくともページ 2 へのスクロールを開始した瞬間にそのデータをリロードします。

これが理にかなっていることを願っています。前もって感謝します!

(私のscrollViewからの抜粋..しかし、私は私のサブビューに何かを追加する必要があると思います..?)

- (void)loadScrollViewWithPage:(int)page {
if (page < 0) return;
if (page >= kNumberOfPages) return;

if ([controllerName isEqualToString:@"ClassicViewController"]){
    ClassicViewController *controller = [viewControllers objectAtIndex:page];
    if ((NSNull *)controller == [NSNull null]) {

        controller = [[ClassicViewController alloc] initWithPageNumber:page];
        controller.referringObject = self.referringObject;
        controller.user = self.user;
        controller.pushedFromScroll = kTrue;
        controller.theirRoll = self.theirRoll;

         NSLog(@"page replaced # = %d", page);
        [viewControllers replaceObjectAtIndex:page withObject:controller];
        [controller release];
    }


    if (nil == controller.view.superview) {
        CGRect frame = scrollView.frame;
        frame.origin.x = frame.size.width * page;
        frame.origin.y = 0;
        controller.view.frame = frame;
        [scrollView addSubview:controller.view];
    }
}

}

4

1 に答える 1

0

いくつかのオプションがありますが、データが更新されたという通知を投稿している場合は、各ページのビュー コントローラーがビューの要素を更新する必要があると思います。そう -

  1. NSNotificationCenterのメソッドで記述した通知を各View ControllerにサブスクライブさせますaddObserver:selector:name:objet
  2. addObserver...変更に基づいてビューを更新するために渡したセレクターの通知ハンドラーを実装します。

お役に立てれば!

于 2012-09-28T06:56:52.770 に答える