Наше приложение для iPad использует UINavigationController
в UIPopoverController
.
Второе представление, управляемое контроллером навигации, является подклассом
UITableViewController
, который, когда выбран правильный ряд, выдвигает
GDataOAuthViewControllerTouch
, как описано на
http://code.google.com/p/gdata-objectivec-client/wiki/OAuthSignInControllers:
GDataOAuthViewControllerTouch *googleOAuthViewController =
[[GDataOAuthViewControllerTouch alloc] initWithScope:@"http://www.google.com/reader/api/*"
language:nil
appServiceName:kAppServiceName
delegate:self
finishedSelector:@selector(viewController:finishedWithAuth:error:)];
googleOAuthViewController.contentSizeForViewInPopover = CGSizeMake(400.0, 577.0);
googleOAuthViewController.navigationItem.title = @"Google Account";
[self.navigationController pushViewController:googleOAuthViewController animated:YES];
[googleOAuthViewController release];
Законченный метод вызывается с успехом:
- (void)viewController:(GDataOAuthViewControllerTouch *)viewController
finishedWithAuth:(GDataOAuthAuthentication *)auth
error:(NSError *)error {
// error == nil
}
Тем не менее, когда приложение затем пытается получить список подписки,
запрос как-то отменяется:
Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn\u2019t be completed.
Код -1012: kCFURLErrorUserCancelledAuthentication = -1012 (определено
в CFNetworkErrors.h).
Когда вместо googleOAuthViewController
представлен модальный контроллер:
[self presentModalViewController:googleOAuthViewController animated:YES];
, тогда запрашиваемые данные извлекаются без проблем.
Непонятно, что вызывает отмену запроса при установке контроллера на навигационный контроллер и как это исправить.