【问题标题】:UIScrollView - How to reload data on second page of subview?UIScrollView - 如何在子视图的第二页上重新加载数据?
【发布时间】:2012-09-28 04:48:20
【问题描述】:

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

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

例如,我在滚动视图中导航到第 1 页。我的 web svc 通过通知向我发送更新的数据。我需要重新加载第 2 页上的数据,同时仍然坐在第 1 页上……或者至少在我开始滚动到第 2 页时重新加载该数据。

我希望这是有道理的。提前致谢!

(我的scrollView中的sn-p..但我认为我需要在我的子视图中添加一些东西..?)

- (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];
    }
}

}

【问题讨论】:

    标签: ios ios5 uiscrollview ios6


    【解决方案1】:

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

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

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回复。我的问题是我的滚动视图中只有 1 个视图控制器。当视图首次打开时,两个页面数据都会被加载。我需要“刷新”此视图控制器正确页面的数据。意思是,如果“玩家 2”得到更新,那么他们在第 2 页上的数据就会反映这一点。我无法从视图控制器中更新某些页面数据。
    • @mtb 您的代码为滚动视图的每一页实例化一个单独的ClassicViewController。您能否更新您的问题以显示负责更新两个页面的视图控制器,您能否还特别描述一下您遇到的麻烦?我可以看一下并尝试在今天晚些时候发布另一个答案。编辑:是的,我在您的第一行中看到您说有一个视图控制器,我不确定我是否看到代码如何与之配合。所以我想帮忙,但我认为我目前没有信息可以这样做。不过,我会关注这个问题的更新。
    • 谢谢 Carl.. 我最终创建了单独的视图控制器并按照您的建议进行操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 2016-07-11
    相关资源
    最近更新 更多