私の appDelegate.m では、これを実行しています:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
NSLog(@"url recieved: %@", url);
NSLog(@"query string: %@", [url query]);
NSLog(@"host: %@", [url host]);
NSLog(@"url path: %@", [url path]);
NSDictionary *dict = [self parseQueryString:[url query]];
NSLog(@"query dict: %@", dict);
if([[url host] isEqual: @"success"]){
RegistrationController *rc = [RegistrationController alloc];
[rc regSuccess];
}
else if([[url host] isEqual: @"fail"]){
RegistrationController *rc = [RegistrationController alloc];
[rc regFailed];
}
return YES;
}
私のregistrationcontroller.mにはこれがあります
-(void)regSuccess{
NSLog(@"REGSUCCESS!!!:D");
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
WaitController *rc = [storyboard instantiateViewControllerWithIdentifier:@"waitcontroller"];
[self.navigationController pushViewController:rc animated:NO];
}
-(void)regFailed{
NSLog(@"REGFAILED!!!:(");
[UIView animateWithDuration:1.0 animations:^{
_wheel.alpha = 0.0;
}];
}
電話で URL スキームに接続すると、アプリにリダイレクトされ、コンソールに REGSUCCESS!!!:D が出力されるので、registrationcontroller.m 内のメソッドが呼び出されたことがわかります。私が抱えている問題は、待機コントローラーがプッシュされていないか、regSuccess メソッド内からのオブジェクトの他の操作が機能していることです。何時間も運がないので、これの修正を探していました:(。助けてください。
注: registrationcontroller.h 内に regSuccess および regFailed メソッドを既に実装しています。
ありがとう!