Skip to content

Instantly share code, notes, and snippets.

@Skeptick
Created May 3, 2023 12:53
Show Gist options
  • Save Skeptick/d877f871a2cd15eb5091d1aa05d92c46 to your computer and use it in GitHub Desktop.
Save Skeptick/d877f871a2cd15eb5091d1aa05d92c46 to your computer and use it in GitHub Desktop.
Present UIActivityViewController from KMM
fun UIActivityViewController.show() {
val topController = TopMostController ?: return
if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad) {
popoverPresentationController()!!.apply {
sourceView = topController.presentingViewController!!.view
sourceRect = CGRectMake(0.0, 0.0, 0.0, 0.0)
}
}
topController.presentViewController(this, true, null)
}
@Suppress("UNCHECKED_CAST")
private val TopMostController: UIViewController?
get() {
val window = (UIApplication.sharedApplication.windows as List<UIWindow>).firstOrNull() ?: return null
var topController = window.rootViewController ?: return null
while (topController.presentedViewController != null) topController = topController.presentedViewController!!
return topController
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment