在 iPad 上运行的 iPhone 应用程序 : rootViewController not the tabBarController as it is when running on iPhone

标签 iphone ios xcode ipad

你好,

我有一个 iPhone 应用程序,我想在 iPad 上运行。但是,我在 iPad(SIM 卡或设备)上运行与在 iPhone 上运行时遇到不同的行为。注意:我不想让它成为一个通用应用程序,它被设置为一个 iPhone 应用程序。

初始 View Controller 是一个 tabBarController - 见下文(取自 iPhone Storyboard - 没有 iPad Storyboard):

enter image description here

我在 appDidFinishLaunchingWithOptions 中有一些代码,这些代码为我提供了稍后使用的 tabBarController 的句柄。在 iPhone 上运行时,我使用的代码行(如下面的第 53 行所示)工作正常,并返回 tabBarController 对象,即初始 View Controller 。

enter image description here

我的问题:在 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/

相关文章:

iphone - UITableView 中的错误

iphone - 如何将 ViewController 添加到 ScrollView

objective-c - 使用 AVFoundation 捕获视频时崩溃

ios - Swift 动态库的 WatchKit 问题

ios - 如何相互访问我自己的 2 个 iOS 应用程序数据库

iphone - iPhone资源的Dashcode开发

iOS——在启动图像后立即将初始 View 设置为广告 x 秒数是否可以接受?

ios - 标签文本是 'nil' ,尽管分配了一些文本

ios - 如何保存从 Assets Xcode swift 中选择的图像

ios - [UIViewController] 类型的表达式?没用过