У меня очень простой случай, когда кнопка показывает UIActivityViewController, чтобы поделиться некоторым контентом. Проблема в том, что составитель почты не закрывается, когда пользователь отменяет или отправляет электронное письмо.
NSArray *items = [NSArray arrayWithObjects:@"share",nil];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
[self presentViewController:activityViewController animated:YES completion:nil];
Я попытался отключить модальное представление в activityViewController.completionHandler, но затем консоль сообщает, что выполняется другая анимация, и иногда приводит к сбою приложения, так что это не решение. К тому же другие социальные сети работают хорошо (facebook, twitter), ничего не делая.
После некоторых тестов я обнаружил, что это происходит только в том случае, если UIViewController, представляющий UIActivityViewController, является потомком UITabBarController. Если в моем AppDelegate я создаю такое приложение, оно не работает:
UIViewController > UINavigationController > UITabbarController > Window
но если я удалю панель вкладок, все будет работать нормально !:
UIViewController > UINavigationController > Window
Обходной путь, который решает проблему, представляет rootviewcontroller.
[self.view.window.rootViewController presentViewController:activityViewController animated:YES completion:NULL];
но я хочу знать, что здесь происходит.
Спасибо! ;)