我正在构建一个天气应用程序。在某种情况下,我必须执行 segue 并更改视图控制器。我使用 MKNetworkKit。如果 API 没有返回值,我会触发 segue。在这个屏幕中,我还创建并显示了一个动画。这是我的代码:
- (void)proccessCompletedWithSuccess:(BOOL)success withResponse: (NSArray *)response;
{
if(success){
//do something
}else{
[self performSegueWithIdentifier:@"NotFound" sender:self];
}
}
GetWeather.m 文件:
#import "GetWeather.h"
@implementation GetWeather
-(MKNetworkOperation*)
urlForApi:(NSString*) urlForApi
path:(NSString*) path
params:(NSMutableDictionary*)params
completionHandler:(ApiResponseBlockForWeather) completionBlock
errorHandler:(MKNKErrorBlock) errorBlock {
MKNetworkOperation *op = [self operationWithPath:path
params:params
httpMethod:@"GET"];
[op addCompletionHandler:^(MKNetworkOperation *completedOperation)
{
NSArray* returningArray = [completedOperation responseJSON];
NSString* description =[[[[returningArray valueForKey:@"query"]
valueForKey:@"results"]
valueForKey:@"channel"]
valueForKey:@"description"];
if ([description isEqualToString:@"Yahoo! Weather Error"]) {
[self.delegate proccessCompletedWithSuccess:NO withResponse:nil];
}else{
[self.delegate proccessCompletedWithSuccess:YES withResponse:returningArray];
}
if([completedOperation isCachedResponse]) {
//NSLog(@"weather response from cache");
}
else {
//NSLog(@"weather response from server");
}
// NSLog(@"%@",[completedOperation url]);
completionBlock(returningArray);
}errorHandler:^(MKNetworkOperation *errorOp, NSError* error) {
errorBlock(error);
[self.delegate proccessCompletedWithSuccess:NO withResponse:nil];
}];
[self enqueueOperation:op];
return op;
}
@end
我得到了这个错误:Unbalanced calls to begin/end appearance transitions for <NotFoundViewController: 0x8888a80>.
更新: 我尝试了 performSelector 延迟。
[self performSelector:@selector(performNotFound) withObject:nil afterDelay:1.0f];
-(void)performNotFound{
[self performSegueWithIdentifier:@"NotFound" sender:self];
}
但什么都没有改变。