我有一个名为SplashViewController的UIViewController实例。我将其添加到AppDelegate的主窗口中,如下所示:

splashViewController = [[SplashViewController alloc]initWithNibName:@"SplashScreen" bundle:[NSBundle mainBundle]];
splashViewController.view.frame = [UIScreen mainScreen].bounds;
[self.window setBackgroundColor:[UIColor blackColor]];
self.window.frame=[UIScreen mainScreen].bounds;
window.rootViewController = splashViewController;
[window makeKeyAndVisible];

我必须在SplashViewController中处理触摸事件,并且需要在程序内部将userInteractionEnabled设置为YES和NO。由于某些原因,我的以下代码无效
[self.view setUserInteractionEnabled:NO]; // YES also have no effect

无论我将YES或NO设置为以上,总是触发我的touchsBegan功能。 SplashViewController具有一个包含图像和简单动画的图像视图。

我还能在哪里寻找userInteraction为何不符合我想要的方式?我尝试更改情节提要中设置的值,但没有任何帮助(我想程序设置应覆盖情节提要设置)。

请任何帮助/指针...提前感谢

最佳答案

尝试设置:

self.view.userInteractionEnabled = YES;

在您的SplashViewController对象的“viewWillAppear:”方法中。

另外,您是否将“splashViewController”保存为应用程序委托中的实例变量?您在AppDelegate的.h或.m文件中的哪里声明“SplashViewController * splashViewController;”?如果未在应用程序委托中将其设置为ivar,则可能在添加后立即将其释放。

关于ios - iOS setUserInteractionEnabled不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18679885/

10-09 16:24