gpt4 book ai didi

ios - 您将如何从 subview 中呈现 ViewController?

转载 作者:搜寻专家 更新时间:2023-11-01 05:50:26 25 4
gpt4 key购买 nike

假设我们有一个自定义控件,在某些状态下应该弹出选项列表供用户选择 (UIAlertController)。通常当我们在 View Controller 中时,我们使用 presentViewController 方法,但在这种情况下,我们无法访问持有此方法的父级 UIViewController。虽然似乎有一些方法可以从 subview 访问 UIViewController,但它被认为是违反 MVC 设计模式的。那你会怎么做呢?我想让 View Controller 尽可能精简,自定义 View (uicontrol) 自给自足,所以我不想将此逻辑移动到 View Controller 。欢迎并赞赏您的所有意见和建议。

最佳答案

您始终可以使用应用程序 rootviewController 来呈现您的警报 View Controller :)您不必总是选择 View Controller 的 View :)无论您的控件在哪里,rootview Controller 始终可以访问:)

这是你可以做的:)

objective-c

 AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate.window.rootViewController presentViewController:your_alert_view_controller animated:YES completion:nil];

swift

let appDelegate : AppDelegate? = UIApplication.sharedApplication().delegate as? AppDelegate
if let unwrappedAppdelegate = appDelegate {
unwrappedAppdelegate.window!.rootViewController! .presentViewController(alert, animated: true, completion: nil)
}

希望我的回答对你有帮助:)

关于ios - 您将如何从 subview 中呈现 ViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36763415/

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