你好,
我有一个 iPhone 应用程序,我想在 iPad 上运行。但是,我在 iPad(SIM 卡或设备)上运行与在 iPhone 上运行时遇到不同的行为。注意:我不想让它成为一个通用应用程序,它被设置为一个 iPhone 应用程序。
初始 View Controller 是一个 tabBarController - 见下文(取自 iPhone Storyboard - 没有 iPad Storyboard):
我在 appDidFinishLaunchingWithOptions 中有一些代码,这些代码为我提供了稍后使用的 tabBarController 的句柄。在 iPhone 上运行时,我使用的代码行(如下面的第 53 行所示)工作正常,并返回 tabBarController 对象,即初始 View Controller 。
我的问题:在 iPad(模拟器或设备)上运行时,应用程序委托(delegate)中的 self.window.rootViewController 向我返回“Alert Central View Controller”对象——您可以从上面的 Storyboard 片段中看到,它在更下方 View 层次结构,绝对不是初始 View Controller 。
这里发生了什么?我会认为因为它在 iPhone 模式下运行,而不是 iPad 模式,所以在 iPad 上运行时 View 的层次结构应该没有变化。显然我错了!
我是否应该尝试以不同的方式访问初始 View Controller ?
有人可以教我有什么区别吗?
谢谢!
最佳答案
检查您的 Info.plist 文件中的 Main storyboard file base name 键,并确保只有 iPhone 的条目具有正确的 Storyboard文件名。我遇到了同样的问题,发现 plist 有两个 Storyboard条目。删除附加 key 后,我的应用程序不再崩溃。也结账 UIStoryboard Class Reference .
关于在 iPad 上运行的 iPhone 应用程序 : rootViewController not the tabBarController as it is when running on iPhone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10393450/