Xcode 11,使用 Main.storyboard 修复的主界面 [重复]
Posted
技术标签:
【中文标题】Xcode 11,使用 Main.storyboard 修复的主界面 [重复]【英文标题】:Xcode 11, Main Interface fixed with Main.storyboard [duplicate] 【发布时间】:2019-09-24 07:11:07 【问题描述】:主界面不会随着 Xcode 11 中的另一个故事板而改变,它总是在用另一个故事板改变后与 Main.storyboard 一起运行,我在新故事板中使用视图控制器后检查了“是初始视图控制器”。
我在 Xcode 10 中测试过,它运行良好。
我是否错过了 Xcode 11 中的某些内容?
在 plist 中。
【问题讨论】:
你在项目设置里改了吗? @iPeter 是的,它不工作。 你能用初始视图控制器展示你的故事板吗? @iPeter 添加了.. 【参考方案1】:Swift 5 与 iOS 13
在 Application 下的 info.plist 文件中需要进行更多更改 场景清单组。
在Application Scene Manifest中更改名称。
补充:
如果您想创建没有情节提要的根窗口,则需要从 Info.plist 中删除 Main storyboard file base name
和 Storyboard Name
项,并以编程方式在 @ 中创建窗口987654325@:
class SceneDelegate: UIResponder, UIWindowSceneDelegate
var window: UIWindow?
@available(ios 13.0, *)
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions)
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
guard let windowScene = (scene as? UIWindowScene) else return
window = UIWindow(windowScene: windowScene)
// continue to create view controllers for window
//......
【讨论】:
是否可以提供类似 $(PRODUCT_NAME) = bundle name, for storyboard name 的东西? 我觉得非常令人沮丧的是,为了更改主界面入口点,在 xcode 中实际上需要更改 3 项才能使其正常工作。从之前版本的 swift 中,这个“场景清单”从未存在过......我确定苹果有理由添加另一个必填字段来更改......但仍然令人沮丧......方式比它必须要复杂得多 如果我想动态改变它怎么办 “Info.plist”文件中的 2 个条目的目的是什么?要么它必须采用场景配置中的一个,要么来自“主故事板文件基本名称” 你好,如果我不从 info.plist 中删除这 2 个呢?但我改变了 SceneDelegate。会不会是令人不满意的布局(不能按预期工作)。【参考方案2】:您能否将“主故事板文件基本名称”更改为您的故事板文件名。
【讨论】:
我没听明白。 plist 文件中有一个键,在“目标”-> 自定义 iOS 目标属性“主故事板文件基本名称”下。默认为“主要”。因此,如果您想要任何其他情节提要,请将“Main”替换为您的文件名。 通过从主界面选择storyboard,在plist中,它会自动改变。虽然我已经编辑了我的问题并添加了 plist 的屏幕截图。以上是关于Xcode 11,使用 Main.storyboard 修复的主界面 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 11,使用 Main.storyboard 修复的主界面 [重复]