你可以做這樣的事情......
首先解決...
設置applicationSupportsShakeToEdit財產在應用程序的代表:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
application.applicationSupportsShakeToEdit = YES;
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}
其次...
添加/覆蓋canBecomeFirstResponder,viewDidAppear:和viewWillDisappear:方法在您的視圖控制器:
-(BOOL)canBecomeFirstResponder {
return YES;
}
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[self resignFirstResponder];
[super viewWillDisappear:animated];
}
第三...
的motionEnded方法添加到您的視圖控制器:
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if (motion == UIEventSubtypeMotionShake)
{
// your code
}
}
這應該工作,如果第一個答案沒有,這只是很快鍵入沒有測試:)
如果你嘗試過的代碼? – Vladimir 2011-05-18 09:23:07
在uiview控制器子類文件 – Radix 2011-05-18 09:28:27
@Radix,我在UIWindow的子類中使用它,並使用NSNotification通知其他控制器在搖動事件。使用UICOntroller子類的代碼,我沒有工作,以及如果我沒有記錯 – Vladimir 2011-05-18 09:31:10