Iphone 出现以编程方式创建的窗口,但不显示';不要对触摸事件做出反应

Iphone 出现以编程方式创建的窗口,但不显示';不要对触摸事件做出反应,iphone,cocoa-touch,Iphone,Cocoa Touch,我正在创建没有主窗口nib的应用程序,在更新到新SDK后,我的应用程序完全崩溃了。在main.m的main()函数中,我有: int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); 下面是应用程序的相关部分:didfishlaunchingwithoptions:在AppDelegate.m中 window = [[UIWindow alloc] init]; tabBarController = [[UITabBar

我正在创建没有主窗口nib的应用程序,在更新到新SDK后,我的应用程序完全崩溃了。在main.m的main()函数中,我有:

int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
下面是应用程序的相关部分:didfishlaunchingwithoptions:在AppDelegate.m中

window = [[UIWindow alloc] init];

tabBarController = [[UITabBarController alloc] init];

UINavigationController *nav = ...;
UITableViewController *table = ...;

tabBarController.viewControllers = [NSArray arrayWithObjects:nav, table, nil];

[window addSubview:tabBarController.view];
[window makeKeyAndVisible];

当应用程序启动时,选项卡栏可见,第一个选项卡中的视图也可见。但是,所有触摸事件要么未注册,要么未传递到窗口本身。我将UIWindow子类化,并将
window
设置为它的一个实例。在这个子类中,我重写了sendEvent:方法,以便在调用它时记录到控制台。什么也没有出现。我做错了什么?

好吧,我知道了。希望这对别人有帮助。以下是我的应用程序中的前几行:didFinishLaunchingWithOptions:method:

window = [[UIWindow alloc] init];
window.screen = [UIScreen mainScreen]; // this fixes the problem

您可以尝试将第四个参数从“nil”修改为main.c中的应用程序委托名称

比如说 将UIApplicationMain(argc、argv、nil、nil)修改为
UIApplicationMain(argc,argv,nil,@“HelloWorldAppDelegate”)

我遇到了类似的问题,帮助我的是添加了

[window setRootViewController:tabBarController];

…我只是添加了视图,而不是整个视图控制器。

在删除mainwindow.xib并以编程方式创建窗口时,我遇到了类似的问题:我仍然有这一行:

[self.window addSubview:rootcontroller.view]

移除它解决了问题。

对于我来说,我必须使用:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
而不是:

self.window = [[UIWindow alloc] init];