vikramarkaios,
Вы всегда можете использовать RootViewController свойство,
UIActivityViewController *activity=[[UIActivityViewController alloc] initWithActivityItems:@[@"test" ] applicationActivities:nil];
[[UIApplication sharedApplication].windows.lastObject.rootViewController presentViewController:activity animated:YES completion:nil];
Это покажет предупреждение на всех otherViews :)
EDIT
В соответствии с вашим Editted вопрос здесь мой ответ, который я тестировал и работает отлично :)
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Public Stock Report" message:NSLocalizedString(@"Your stock report...", nil) preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
//do whatever you want
}];
UIAlertAction *settingsAction = [UIAlertAction actionWithTitle:@"Share" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
UIActivityViewController *activity=[[UIActivityViewController alloc] initWithActivityItems:@[@"test" ] applicationActivities:nil];
[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:activity animated:YES completion:nil];
}];
[alertController addAction:cancelAction];
[alertController addAction:settingsAction];
[self presentViewController:alertController animated:YES completion:nil];
Мое предложение - скрыть всплывающее окно, когда кнопка совместного доступа используется. – Gokul