我有一个页面视图控制器,每次用户滑动时,我都会使用此方法来检测转换是否完成。
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
现在,我有5个视图控制器显示在页面视图控制器中,并且每个视图控制器上都有一个UILabel。使用以上方法检测成功的转换,我希望每次转换完成时都使用页面视图控制器类中的数据更新UILabel。
因此,每次用户滑动时,我都希望使用我的页面视图控制器类中的新值来更新5个视图控制器上的UILabel。
做到这一点的最佳方法是什么(定期更新其他类的字符串/调用方法)?我环顾四周,找不到任何相关信息?!任何帮助将不胜感激,谢谢。
我发现做到这一点的最好方法是通过NSNotifications。我在要更新的每个视图控制器类中都创建了一个观察者,然后只需在主类中调用Notifications,然后在视图控制器中调用其中的方法!如此简单干净!
将此添加到您要更新的类中:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(updateLabel:)
name:@"LABELUPDATENOTIFICATION1"
object:nil];
为此创建一个方法:
- (void)updateLabel:(NSNotification*)notification
{
NSString *updatedText = (NSString*)[notification object];
[nameLabel setText:updatedText];
}
然后从其他任何类调用此方法,您创建的方法将被调用:
[[NSNotificationCenter defaultCenter] postNotificationName:@"LABELUPDATENOTIFICATION1"object:content1];
我很惊讶没有人从一开始就建议我这样做,因为这很简单,所有其他答案似乎都太复杂了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句