Ios6 iOS 7中的UIStoryboard和UITabBarController

Ios6 iOS 7中的UIStoryboard和UITabBarController,ios6,uitabbarcontroller,ios7,uistoryboard,xcode5,Ios6,Uitabbarcontroller,Ios7,Uistoryboard,Xcode5,在这个使用iOS6SDK创建的应用程序中,我使用了本文中描述的方法来模块化我的故事板。基本上,它是通过编程创建一个UITabBarController,并将每个故事板作为选项卡嵌入其中 这在iOS 6中运行良好,但在iOS 7中,似乎出现了问题。当我运行它时,应用程序有点冻结。无法点击选项卡切换到它们和所有选项卡。即使是选项卡中的按钮等控件也不接受点击 最糟糕的是它甚至没有抛出任何错误或警告。在这方面也没有使用过不推荐使用的API。我不知道为什么这不起作用 我已经联系了写这篇文章的作者,并通知他

在这个使用iOS6SDK创建的应用程序中,我使用了本文中描述的方法来模块化我的故事板。基本上,它是通过编程创建一个
UITabBarController
,并将每个故事板作为选项卡嵌入其中

这在iOS 6中运行良好,但在iOS 7中,似乎出现了问题。当我运行它时,应用程序有点冻结。无法点击选项卡切换到它们和所有选项卡。即使是选项卡中的按钮等控件也不接受点击

最糟糕的是它甚至没有抛出任何错误或警告。在这方面也没有使用过不推荐使用的API。我不知道为什么这不起作用

我已经联系了写这篇文章的作者,并通知他这个问题,但我还没有收到他的任何回复。我想在这段时间问一下

我已经创建了一个项目来演示这个问题,并上传了它。它是使用Xcode 4.6和iOS 6.1创建的。在iOS 6中运行时,它可以正常工作,但在Xcode 5和iOS 7中则不行

我知道这不是一个直截了当的编程问题,但如果有人能看一下,并给我一个如何纠正这个问题的建议,我将不胜感激


非常感谢

在-setUpTabBasedAppWithTabs:block:method中,您正在使用以下行:

[UIWindow new]
这相当于:

[[UIWindow alloc] init];
[[UIWindow alloc] initWithFrame:CGRectZero];
这相当于:

[[UIWindow alloc] init];
[[UIWindow alloc] initWithFrame:CGRectZero];
如果您将其更改为:

[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]
那么这是正确的。窗口可能位于右上角,但不剪裁子视图,这样子视图可以进行绘制,但不能与触摸交互


在这个演示中还有一些其他让人困惑的东西,尽管在您的实际应用程序中可能没有。主情节提要仍在info.plist/project编辑器中设置。这意味着您的应用程序在您正在创建的窗口后面还有一个窗口,其中包含一些视图控制器的实例。

为什么这样拆分情节提要?为什么不在故事板中创建tabbar?@null这是一个相当大的应用程序。所以我想把它分解成模块,这样从长远来看,它很容易维护。一个tabbar有很多场景太混乱了。这是有道理的,但我说的是找到更好的方法来拆分你的应用程序,这样你的
tabbar控制器
就会出现在主情节提要中,可能会创建到
UINavigationControllers
的片段,并将你的子情节提要推向VC。哇,我真是太感谢你了!你说得对。我只是匆忙创建了这个演示,只是为了展示这个问题。在我的真实应用程序中,我在info.plist中设置了正确的故事板。再次非常感谢:)