我有 3 个标签栏项目,每个项目都是一个视图控制器。第一、第二和第三视图控制器。我需要 First ViewController 调用一个方法来更新第二个视图控制器视图上的 tableview。我不确定处理这个问题的正确方法是什么。我尝试了一个 sharedInstance,但我认为正在创建两个实例,并且第一个 VM 使用的视图控制器与应用程序中实际使用的 VM 不同,这可以解释为什么我的 tableview 不是更新。
基本上,当我在 First View Controller 中上传文件时,我需要第二个 VM 来更新 tableview 并显示文件的上传进度。有点像在 iTunes 上购买歌曲。这些是标签项的 UINavigationViewControllers。
我试过这个:
+ (SecondViewController *)sharedInstance {
// Singleton implementation
static SecondViewController* instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[SecondViewController alloc] init];
});
return instance;
}
- (void)viewDidLoad
{
[super viewDidLoad];
UploadTableView.dataSource = self;
UploadTableView.delegate = self;
[S3UploadClientManager tm].delegate = self;
}