1

我有一个滚动视图,它设置为在两页之间来回滚动。每个页面在同一个视图控制器上使用不同的标签数据等。

我需要在每个页面上重新加载数据,而不退出“子”视图。

例如,我在滚动视图中导航到第 1 页。我的 web svc 通过通知向我发送更新的数据。我需要重新加载第 2 页上的数据,同时仍然坐在第 1 页上……或者至少在我开始滚动到第 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'addObserver:selector:name:objet方法描述的通知。
  2. 实现您传递给其选择器的通知处理程序,addObserver...以根据更改更新视图。

希望这可以帮助!

于 2012-09-28T06:56:52.770 回答