繁体   English   中英

UIScrollView-如何在子视图的第二页上重新加载数据?

[英]UIScrollView - How to reload data on second page of subview?

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

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

例如,我导航到滚动视图中的页面1。 我的网络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];
    }
}

}

您有一些选择,但是我认为,如果您的数据正在发布已更新的通知,则应该让每个页面的视图控制器负责更新其视图的元素。 所以-

  1. 让每个视图控制器订阅您使用NSNotificationCenteraddObserver:selector:name:objet方法描述的通知。
  2. 实现通知处理程序,该通知处理程序将其选择器传递给addObserver...以根据更改更新视图。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM