Имам много прост случай, при който бутон показва 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];
но искам да знам какво се случва тук.
Благодаря! ;)