[英]Update UITableView when UIScrollView content changes
我有2个ViewController,每个ViewController包括一个滚动视图(显示几个图)和一个表视图。 我想基于滚动视图中显示的当前图形更新表视图内容。
滚动视图由单独的类“ GraphScrollView”管理,其中属性currentIndex存储所显示的当前图形。
问题是我不知道如何通知viewController currentIndex已更改,以便它可以发送reloadData方法来更新tableview。 我当时想在GraphScrollView类中发布通知,并在2个viewControllers中添加一个Observer,但是在这种情况下,两个ViewController都将被通知,而我只想通知当前活动视图的viewController(因为两个VC应该是独立的,也因为两个viewController可以具有不同数量的图,因此,对于两个VC之一,currentIndex可能是错误的值)。
谢谢,Corrado
我假设您可以在“活动视图”更改时将视图控制器设置为观察者并将其删除。
您还可以创建一个委托协议,并切换哪个视图控制器为委托,但实际上,我发现,与通知相比,这样做没有更多的收获。
从您的问题尚不清楚,您如何更改滚动视图中的currentIndex
。 但是,您始终可以在视图控制器中实现UIScrollViewDelegate,以在滚动结束时获取更新:
...
@implementation ViewController
...
- (void)viewDidLoad {
...
self.graphScrollView.delegate = self;
...
}
...
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
if (self.graphScrollView.currentIndex == ???) {
[self.tableView reloadData];
}
}
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.