【发布时间】:2017-08-10 10:58:42
【问题描述】:
我正在使用 NSNotification 中心来检测货币变化,因此我可以更新所有其他类。当货币发生变化时,所有其他类和视图都会更新,但是当没有货币变化时,如果您按后退按钮返回主页,则视图会加载到现有视图的顶部。
NSNotification 中心代码
if ([overviewModel.currency isEqual:@"GBP"]){
[[NSNotificationCenter defaultCenter] postNotificationName:@"DataUpdated"
object:self];
} else {
[[NSNotificationCenter defaultCenter] postNotificationName:@"DataUpdated"
object:self];
}
主页更新数据处理代码:
for (UIView *b in self.view.subviews) {
[b removeFromSuperview];
}
self.build = [[ApiRequestBuild alloc]initWithVersionKey:kAPI_VERSION_KEY requestType:kAPI_REQUEST_TYPE data:@""];
[self.build setQueryWithSection:@"homepage" value:@"" parameter:@[]];
self.request = [[ApiRequest alloc]init];
self.request.delegate = self;
[self.request sendRequestWithParams:[self.build buildConfig] toUrl:kAPI_URL_STRING];
我知道为什么会这样,请求被再次发送,所以页面加载到已经存在的页面之上,我不明白为什么从子视图中删除代码没有摆脱视图我将如何解决这个问题?谢谢
【问题讨论】:
-
你试过了吗? - stackoverflow.com/a/11889296/3548469
-
@Dev_Tandel 是的,仍然是同样的问题。我将创建一个全局变量并将其设置为 nil ,然后仅在货币更改时为其添加一个值,这样主页才会更新。
-
但是为什么要删除子视图?您只需要在货币更改时全部更新
-
@Dev_Tandel 更新主页,我发送另一个请求以再次获取主页,如果我不删除子视图,它会在现有视图之上添加视图。
-
抱歉@Taha Amini - 我真的没有得到你希望实现这一目标并获得主页的人。你正在开发原生应用程序对吗?
标签: ios objective-c nsnotificationcenter