我创建了一个库,如果主应用程序调用我的库显示它,并从服务器下载一些数据。但是如果服务器有一些错误我想杀死库视图,但它不起作用 我在主机应用程序中有一个代表:
-(void)libraryResult:(NSString*)result{
NSLog(@"result: %@", result);
}
我在viewWillAppear方法中从服务器下载数据,下载的代理方法如下:
-(void)networkManagerError:(NSString *)error{
[hud hide:YES];
[self.presentedViewController dismissViewControllerAnimated:YES completion:nil];
[self.delegate libraryResult:error];
}
我在日志中看到该应用返回主应用,但视图无法更改。 怎么解决这个?我的代码怎么了?
答案 0 :(得分:2)
更改此行
[self.presentedViewController dismissViewControllerAnimated:YES completion:nil];
要
[self dismissViewControllerAnimated:YES completion:nil];
答案 1 :(得分:0)
尝试这些..
[self dismissViewControllerAnimated:YES completion:nil];
答案 2 :(得分:0)
如果你有VC1提供VC2,那么在相应事件的VC2内(比如点击关闭按钮,或服务器等错误),你应该打电话:
[self.presentingViewController dismissViewControllerAnimated:YES completion:^{
}]
如果以这样的方式设置事物以便VC1通知VC2内发生的事件,您可以使用:
[self dismissViewControllerAnimated:YES completion:nil];
然而,第一种方法是更优选的,因为它是一种更好的设计实践,并且有助于VC1和VC2之间更松散的耦合。
答案 3 :(得分:0)
尝试从您的"库结果中发出通知"如果发生错误,则将方法添加到当前控制器视图中。
[[NSNotificationCenter defaultCenter] postNotificationName:Remove_CurrentView object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(remove) name:Remove_CurrentView object:nil];
-(void)remove{
[self dismissViewControllerAnimated:YES completion:nil];
}