gpt4 book ai didi

ios - window.rootViewController 怎么可能不是 initialViewController?

转载 作者:行者123 更新时间:2023-11-28 07:13:38 31 4
gpt4 key购买 nike

我正在尝试将我现有的 iOS 应用程序转换为将主细节 View 作为 Root View 。我在 Xcode 中创建了一个新的 Master Detail 项目作为模板。然而,尽管有相同的 AppDelegate.swift 和几乎相同的 Storyboard文件,我还是遇到了由 window.rootViewController 引起的异常。不是 initialViewController在 Storyboard 中定义。

来自 Info.plist:

<key>UIMainStoryboardFile</key>
<string>Main</string>

来自 Main.storyboard:

<document ... initialViewController="Z2E-r9-vU1">
<!-- ... -->
<!--SplitViewTitle-->
<scene sceneID="dlH-f9-ql3">
<objects>
<splitViewController title="SplitViewTitle" id="Z2E-r9-vU1" sceneMemberID="viewController">

异常发生在AppDelegate.swift:

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, UISplitViewControllerDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let splitViewController = self.window!.rootViewController as UISplitViewController

在 Xcode 创建的默认 Master Detail 项目中,self.window!.rootViewController将是 UISplitViewController ,但在我的应用程序中它将是 UINavigationController ,特别是主视图的导航 Controller 。

怎么会这样?根据我对 rootViewController 的理解, 它应该设置为 initialViewController发射时。引用一些官方documentation :

at launch time iOS:

  • Instantiates a window.
  • Loads the main storyboard and instantiates its initial view controller.
  • Assigns the new view controller to the window’s rootViewController property and then makes the window visible.

更新:

这开始看起来像是 Xcode 中的错误。我只是通过创建一个新的 Master Detail 项目,将 Deployment Target 设置为 7.1 并在 iPhone 5 (7.1) 模拟器上运行它来重现确切的异常。它在 iPhone 5 (8.1) 模拟器上可以正常工作。

更新 2:我一直在使用 Xcode Version 6.1 (6A1052c) .我刚刚升级到最新版本,Version 6.1.1 (6A2008a) ,但它并没有解决这个容易重现的问题。我将向 Apple 提交错误报告并继续。

最佳答案

您不能在 8.0 之前的 iOS 版本中为 iPhone 使用 SplitViewController - 仅适用于 iPad。

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISplitViewController_class/index.html

在 iOS 8 及更高版本中,您可以在所有 iOS 设备上使用 UISplitViewController 类;在以前的 iOS 版本中,该类仅在 iPad 上可用。

关于ios - window.rootViewController 怎么可能不是 initialViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27348411/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com