Say I have two view controllers: xVC and yVC. I have used the shake API and and have used the methods -(void)motionBegan,-(void)motionEnded: and -(void)motionCancelled in xVC. What happens is when the device is shaken, it fires a simple animation. Now the thing is that this animation is fired even when the I have yVC open that is, when yVS.view has been added as the subview. What I am looking for is some if condition which I can use in -(void)motionEnded: like this:
if(yVC == nil)
{
//trigger animation
}
By that I mean that the shake shouldn’t work when yVC is visible. How do I do that? Please help.
The general advice I have seen and used is to ask a view if it has a non-nil
windowproperty:But note that this doesn’t always equate with being visible; though in most apps it’s about as good as you can performantly get (the basic case where it’s not accurate is when a different view completely obscures it, but this may still satisfy your needs)