说我有两个视图控制器:xVC和yVC。我使用了摇动API,并在xVC中使用了-(void)motionBegan
,-(void)motionEnded:
和-(void)motionCancelled
方法。发生的情况是摇动设备后会触发一个简单的动画。现在的事情是,即使我打开了yVC,也就是将yVS.view
添加为子视图时,也会触发该动画。我正在寻找的是一些可以在-(void)motionEnded:
中使用的if条件,例如:
if(yVC == nil)
{
//trigger animation
}
我的意思是,当yVC可见时,摇动不应起作用。我怎么做?请帮忙。
最佳答案
我已经看到和使用的一般建议是询问一个视图是否具有非nil window
属性:
if( ! yVC.view.window) {
// trigger animation
}
但是请注意,这并不总是等同于可见。尽管在大多数应用中,它的性能都可以达到您想要的效果(不准确的基本情况是,当其他视图完全遮住它时,但这仍然可以满足您的需求)