在Xcode 11中,Storyboard未被删除。

3

我通常通过编程方式构建用户界面,但由于某些原因,升级到 Xcode 11 后无法移除故事板或其引用。它不断抛出错误,称找不到故事板。通常情况下,我会删除 Main,然后进入项目设置并将 Main 关键字文本也删除。然后我会删除 viewController,添加一个名为 HomeViewController 的新 viewController,并在应用程序委托中使用以下代码。

var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        window = UIWindow()
        window?.makeKeyAndVisible()
        let nc = UINavigationController(rootViewController: HomeViewController())
        window?.rootViewController = nc

        return true
    }

我按照之前在旧版Xcode中使用的确切步骤进行操作,并且这些步骤过去一直有效(并没有删除故事板文件本身)。只要我添加了上述代码即可。现在似乎情况有所改变。如果我删除默认的ViewController文件,例如添加一个新的HomeViewController文件并添加上述代码,则会抛出错误,指示故事板缺失或故事板不包含HomeViewController。


2
你更新了场景代理吗?你在目标的“常规”选项卡上更新了“主界面”设置吗? - rmaddy
@rmaddy感谢您的评论。我根本没有注意到这个新的场景代理文件,也不知道它的存在。是的,我从常规选项卡上的主接口设置中删除了关键字“Main”。 - Archid
1个回答

3
我猜您正在创建一个iOS 13目标的新项目,但您没有明确说明。如果不是,请忽略这个 :-)。
在XCode 11中,对于一个新的iOS 13+项目,他们改变了从代码初始化UI的方式。它不再发生在AppDelegate中,而是在SceneDelegate中。
在我花费了太长时间弄清楚发生了什么之后,我写了一篇博客文章,希望可以帮助其他人。而不是重新解释所有内容,我会链接到它: XCode 11 New Project Without Storyboard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接