对不支持多个窗口的应用程序使用场景委托



我知道场景委托只能在iOS 13及更高版本上使用。为了使我的应用程序支持 iOS 12 及更早版本,我要么选择退出场景委托,要么设置@available标签来提醒 Xcode。我在这里阅读了有关场景委托的使用。根据我所看到的,除了支持多个窗口之外,我不知道在不支持多个窗口的应用程序上使用场景委托的任何其他优势。性能会提升吗?那么,如果我的应用将来不打算支持多个窗口,是否可以单独使用应用委托?

窗口由WindowScene管理,

您需要注册新窗口(多个窗口(以WindowScene,并SceneDelegate

YourWindow  * window = [[YourWindow alloc] initWithFrame:CGRectMake(0, 0, windowWidth, windowWidth)];
window.hidden = false
// there is a time delay,
// if activationState = UISceneActivationStateUnattached
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
if (@available(iOS 13.0, *)) {
for (UIWindowScene *windowScene in [UIApplication sharedApplication].connectedScenes) {
if (windowScene.activationState == UISceneActivationStateForegroundActive) {
window.windowScene = windowScene ;
break;
}

}
}
});

最新更新