如何通过iOS Objective C中的appDelegate从另一个视图控制器重新加载表视图
Posted
技术标签:
【中文标题】如何通过iOS Objective C中的appDelegate从另一个视图控制器重新加载表视图【英文标题】:How to reload table view from another view controller via appDelegate in iOS Objective C 【发布时间】:2016-02-11 16:14:50 【问题描述】:我正在尝试从我的 FirstViewController 重新加载我的 SingleGrid 的 UITableView
。
UITableView
的声明是 IBOutlet
和在我的 AppDelegate 中声明的 singleGrid 变量。
我想从 FirstViewController 重新加载 singleGrid 的 UITableView
。表视图名称 singleGridTable
不在点之后。
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.singleGrid.singleGridTable reloadData]
【问题讨论】:
@shehzad ali 我不明白你的意思是什么?这段代码在我的 FirstViewController 中,我也写了 firstViewController 的 viewdidload 的顶部:AppDelegate *appDelegate= [[UIApplication sharedApplication] delegate]; 您的 singleGridTable 被声明为 SingleGrid 的 .h 文件中的属性?@property (nonatomic, weak) IBOutlet UITableView * singleGridTable;
在SingleGrid.m的顶部是这样声明的 // SingleGrid.m文件 @interface SingleGrid () property (nonatomic, strong) IBOutleT UITableView *singleGridTableView;结束
将其移至 .h 文件。届时它将公开,并对您的 firstViewController 可见。
好吧,我会尝试thanx很多
【参考方案1】:
确保您已将 singleGrid 声明为 appdelegate.h 中的属性,例如
@property (nonatomic, strong) SingleGridViewController * SingleGrid;
那些在 .h 文件中声明的属性是公共的,否则它们是私有的,你不能在其他类中访问它们。
还要确保 singleGridTable 在您的 .h 文件中也被声明为属性。
@property (nonatomic, weak) IBOutlet UITableView * singleGridTable;
【讨论】:
没关系,但是在 nsurlsessin 块中的 nsurlsession 请求之后,我写了这个但不是工作表没有重新加载 dispatch_sync(dispatch_get_main_queue(), ^ [appDelegate.singleGrid.singleGridTable reloadData]; );跨度> 确保 singleGridTable 的实例数据源和委托应针对 singleGrid 的实例设置。 在我的 FirstViewController 的初始化中我写:singleGridTable.delegate = self; singleGridTable.dataSource = 自我;你是这个意思吗? 在 NSURLSession 响应中添加断点并检查 singleGrid 是否存在?如果存在,请检查 singleGrid.singleGridTable.delegate;你可以在调试器po appDelegate.singleGrid;
然后po appDelegate.singleGrid.singleGridTable.delegate;
使用命令
singleGridTable 存在但未进入 dispatch_sync 块 appDelegate.singleGrid.singleGridTable 更多代码可能会有所帮助(相关的标头和实现),但我可以在黑暗中试一试。 firstViewController 是否知道 SingleGrid 上将存在哪些属性?无论您想在何处访问 SingleGrid 上的属性,都需要包含声明该属性存在的标头。你的 firstViewController 也是如此
【讨论】:
以上是关于如何通过iOS Objective C中的appDelegate从另一个视图控制器重新加载表视图的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Objective C 从 iOS 中的 Core Data 中过滤数据
如何从 iOS 9 和 Objective C 中的 .MOV 文件中获取缩略图?
如何在 iOS 8 Objective c 中的 UIWebView 中从文档中加载 png 图像
如何在应用程序委托iOS10 Objective C中的applicationWillEnterForeground方法中以模态方式呈现UIViewController