アプリで Flickr を使用しています。Flickr ボタンをクリックすると、Safari にリダイレクトされ、Flickr と認証でログインします。
次に、承認が成功すると、アプリにリダイレクトされます。しかし、リダイレクトした後、ViewWillAppear を呼び出したいと思います。私も<UIApplicationDelegate>
自分の見解を示しました。ただし、以下のメソッドは呼び出していません。
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:YES];
NSLog(@"@@@@@@@@@@@@@@@@@@@@@Flickr Authorized is completed");
}
- (void)UIApplicationWillEnterForeground:(UIApplication *)application
{
NSLog(@"@@@@@@@@@@@@@@@@@@@@@Flickr Authorized is completed at foreground");
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
/*
Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
*/
NSLog(@"@@@@@@@@@@@@@@@@@@@@@Flickr Authorized is completed at become active");
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"@@@@@@@@@@@@@@@@@@@@@@Flickr Authorized is completed at openURL");
}
-(void)viewWillAppear:(BOOL)animated
{
NSLog(@"@@@@@@@@@@@@@@@@@@@@@Flickr Authorized is completed at viewWillAppear");
[super viewWillAppear:YES];
}
しかし、Below メソッドは、AppDelegate で safari からリダイレクトした後に呼び出しています。SnapAndRun flickr サンプルのコードを使用しました。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"@@@@@@@@@@@@@@@@@@@@@@Call Back Here@@@@@@@@@@@");
if ([self flickrRequest].sessionInfo)
{
// already running some other request
NSLog(@"Already running some other request");
}
else {
NSString *token = nil;
NSString *verifier = nil;
BOOL result = OFExtractOAuthCallback(url, [NSURL URLWithString:SRCallbackURLBaseString], &token, &verifier);
if (!result) {
NSLog(@"Cannot obtain token/secret from URL: %@", [url absoluteString]);
return NO;
}
[self flickrRequest].sessionInfo = kGetAccessTokenStep;
[flickrRequest fetchOAuthAccessTokenWithRequestToken:token verifier:verifier];
[activityIndicator startAnimating];
//[viewController.view addSubview:progressView];
}
return YES;
}
ここでビュー コントローラーのメソッドを呼び出せることはわかっています。しかし、ビュー自体でリダイレクトした後にデフォルトのデリゲートメソッドを呼び出す代替手段はありますか?
任意の提案をいただければ幸いです。前もって感謝します。