我有一个滚动视图,设置为在两页之间来回滚动。每个页面在同一视图控制器上使用不同的标签等数据。
我需要在每个页面上重新加载数据,而不退出“子”视图。
例如,我在滚动视图中导航到第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];
}
}
}
答案 0 :(得分:0)
您有一些选择,但我认为如果您的数据发布了已更新的通知,您应该让每个页面的视图控制器负责更新其视图的元素。所以 -
NSNotificationCenter
的{{1}}方法订阅您描述的通知。addObserver:selector:name:objet
的选择器的通知处理程序,以根据更改更新视图。希望这有帮助!