gpt4 book ai didi

ios - 来自实用程序类的 sharedInstance 的 presentViewController

转载 作者:行者123 更新时间:2023-11-28 23:40:37 26 4
gpt4 key购买 nike

我想从一些代码中展示一个 MFMailComposerViewController,这些代码深藏在可通过共享实例访问的实用程序类中。

当我尝试时

[self presentViewController:mailVC animated:YES completion:nil];

我收到一个错误,表示呈现 View 不在 View 层次结构中,这是有意义的。

当我尝试使用导航 Controller 时:

[self.navigationController presentViewController:mailVC animated:YES completion:nil];

没有发生错误,但什么也没有发生。

我应该从调用 sharedInstance 的 VC 中呈现它是有道理的,但我不知道如何从共享实例中引用它。

感谢您提供有关如何执行此操作的任何建议。

最佳答案

您可以从最顶层的 View Controller 中呈现它。这是我为了得到一个所做的。

+ (UIViewController *)topViewController {
UIViewController *topController = [[UIApplication sharedApplication].windows firstObject].rootViewController;

if ([topController isKindOfClass:[UINavigationController class]]) {
topController = [[(UINavigationController *)topController viewControllers] lastObject];
}

while (topController.presentedViewController) {
topController = topController.presentedViewController;

if ([topController isKindOfClass:[UINavigationController class]]) {
topController = [[(UINavigationController *)topController viewControllers] lastObject];
}
}

return topController;
}

关于ios - 来自实用程序类的 sharedInstance 的 presentViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53565926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com