2009-08-15 35 views
0

我正在做我的应用程序摇姿态兼容:becomeFirstResponder似乎在我的UIViewController做这个工作的摆动姿态只有第1次

- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.view becomeFirstResponder]; 
    [super viewWillAppear:animated]; 
} 

的问题是,当我翻到另一种观点(我使用具有flipside视图的“Utility App”模板和根视图控制器来管理它们)当我回来时,摇动手势停止工作。

我看到viewWillAppear方法被调用,它似乎没有恢复第一次响应状态第二次。

回答

2

谁知道..你必须拨打电话becomeFirstResponderviewDidAppear而不是viewWillAppear

+0

我有同样的问题!我认为我在其中一个应用开发论坛上找到了答案。 – 2009-10-07 14:39:07

+0

是的 - 这是工作,对我来说,谢谢! – 2012-03-06 23:27:11

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; 
}