大佬教程收集整理的这篇文章主要介绍了ios – 更新UITabBarController的所有视图控制器,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有一些推荐的方法同时更新UITabBarController的所有视图控制器,即让他们重新加载他们的视图?
我目前的方法是使这些视图控制器符合协议
@protocol XYReloadableViewController - (void)reloadContents; @end
然后在点击按钮时将消息-reloadContents发送到所有视图控制器:
- (IBACtion)touchUpInsideResetButton { // ... NSArray *viewControllers = self.tabBarController.viewControllers; for (UIViewController<XYReloadableViewController> *viewController in viewControllers) { [viewController reloadContents]; } }
然后在每个视图控制器中,我将不得不实现该方法:
- (void)reloadContents { [self.tableView reloadData]; // other updates to UI ... }
但这似乎有点过于复杂.那么是否有更简单的方法告诉视图控制器重新加载他们的视图?
编辑:如果我在某些选项卡或容器视图控制器中提供UINavigationController会发生什么?我需要沿着所有子视图控制器的链传递消息…
您可能希望推迟更新,直到视图实际显示为止.您可以在VC接收通知时设置BOOL needsupdate,但仅在viewWillAppear:中执行实际更新,以节省资源并防止大量更新立即关闭(并且可能阻止主线程).
如果这种行为对于所有视图控制器都是通用的,那么创建一个UIViewController子类以防止重复代码并让它们全部继承.或者,(如果您正在使用Apple VC子类)在UIViewController上创建一个类别以添加通知方法.
以上是大佬教程为你收集整理的ios – 更新UITabBarController的所有视图控制器全部内容,希望文章能够帮你解决ios – 更新UITabBarController的所有视图控制器所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。