首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在SwiftUI中创建项目后,我们可以将根视图控制器更改为Storybord吗?

在SwiftUI中创建项目后,我们可以将根视图控制器更改为Storybord吗?
EN

Stack Overflow用户
提问于 2019-07-03 13:58:51
回答 1查看 894关注 0票数 0

我试着追随

  1. 替换SceneDelegate中的以下代码

让window = UIWindow(frame: UIScreen.main.bounds) window.rootViewController = UIHostingController(rootView: ContentView()) self.window = window window

相反,

代码语言:javascript
复制
guard let _ = (scene as? UIWindowScene) else { return }

还将Main Interface设置为Storyboard和入口点。

问题:启动启动屏幕

后出现黑屏

EN

回答 1

Stack Overflow用户

发布于 2019-07-09 03:10:03

使用Xcode11Beta3,我可以通过以下步骤可靠地让情节串连板在新的SwiftUI项目中作为根视图控制器工作:

  1. 注释掉SceneDelegate的scene(willConnectTo:)中的代码,创建一个新的Main.storyboard,添加一个视图控制器,并在上面设置“是初始视图控制器”。
  2. 选择iOS目标的Info.plist,右键单击“作为->源代码打开”。
  3. 添加UISceneStoryboardFileUIMainStoryboardFile键,如下所示:<代码>H211<代码>G212

在目标的部署信息部分中设置主界面仅设置UIMainStoryboardFile键,但为了使其正常工作,我必须同时设置这两个键。

下面是Info.plist的完整代码:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>$(DEVELOPMENT_LANGUAGE)</string>
    <key>CFBundleExecutable</key>
    <string>$(EXECUTABLE_NAME)</string>
    <key>CFBundleIdentifier</key>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>$(PRODUCT_NAME)</string>
    <key>CFBundlePackageType</key>
    <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleVersion</key>
    <string>1</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>UIApplicationSceneManifest</key>
    <dict>
        <key>UIApplicationSupportsMultipleScenes</key>
        <false/>
        <key>UISceneConfigurations</key>
        <dict>
            <key>UIWindowSceneSessionRoleApplication</key>
            <array>
                <dict>
                    <key>UILaunchStoryboardName</key>
                    <string>LaunchScreen</string>
                    <key>UISceneConfigurationName</key>
                    <string>Default Configuration</string>
                    <key>UISceneDelegateClassName</key>
                    <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
                    <key>UISceneStoryboardFile</key>
                    <string>Main</string>
                </dict>
            </array>
        </dict>
    </dict>
    <key>UILaunchStoryboardName</key>
    <string>LaunchScreen</string>
    <key>UIMainStoryboardFile</key>
    <string>Main</string>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
        <string>armv7</string>
    </array>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
</dict>
</plist>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56863768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档