use performSelector:withObject:afterDelay:inModes: instead of performSelector:withObject:afterDelay: