Iphone 出现以编程方式创建的窗口,但不显示';不要对触摸事件做出反应
我正在创建没有主窗口nib的应用程序,在更新到新SDK后,我的应用程序完全崩溃了。在main.m的main()函数中,我有: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
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];