通过在我的UIViewController中执行此操作,我正在使我的应用程序与握手兼容:
- (void)viewWillAppear:(BOOL)animated
{
[self.view becomeFirstResponder];
[super viewWillAppear:animated];
}
问题是,当我转到另一个视图时(我正在使用“Utility App”模板,它具有翻转视图和根视图控制器来管理它们)当我回来时,摇动手势停止工作。
我看到调用了viewWillAppear
方法,看起来第二次视图似乎没有重新获得第一响应者状态。
答案 0 :(得分:2)
谁知道..你必须在becomeFirstResponder
而不是viewDidAppear
拨打viewWillAppear
。
答案 1 :(得分:1)
是的,这确认了我...我试图将控制器设置为应用程序委托的firstResponder。同时,我发现调试将这个日志语句用于战略方法非常有用。
NSLog(@"%s: I %s first responder! (%@)", __FUNCTION__, [self isFirstResponder] ? "am" : "am not", self);
另外,为了允许我在任意时间触发它,我启用了“方向”方法并将其放在那里。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
NSLog(@"%s: I %s first responder! (%@)", __FUNCTION__, [self isFirstResponder] ? "am" : "am not", self);
return YES;
}