0

最近我更新到 XCODE 11 并开始了解 SceneDelegate 和 AppDelegate 的概念。这是我在 AppDelegate 中的简单代码:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor yellowColor];
    return YES;
}

但不幸的是,它在以下行崩溃,如图所示:

在此处输入图像描述

它显示以下错误:

在此处输入图像描述

请帮助我解决我面临的问题。任何帮助将不胜感激。

4

2 回答 2

1

假设你的根视图控制器的视图是透明的,这里是在你的场景中设置UIWindow背景颜色的地方:

SceneDelegate.m在如下回调中修改如图:

- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
    if (scene.class == UIWindowScene.class) {
        [[(UIWindowScene *) scene windows].firstObject setBackgroundColor:UIColor.yellowColor];
    }
}
于 2020-04-23T07:13:57.750 回答
1

要删除屏幕代理:

转到 info.plist 并删除选定的条目,如下所示: 在此处输入图像描述

从项目中删除 ScreenDelegate.h 和 ScreenDelegate.m: 在此处输入图像描述

将您的 AppDelegate.h 更新为:

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow * window;

@end

最后,从 AppDelegates 类中删除 Screen 委托:

在此处输入图像描述

希望有帮助。

如果您想使用 ScreenDelegates,您可以参考 Asperi 的答案

于 2020-04-23T07:24:38.293 回答