Use UIApplicationDidChangeStatusBarOrientationNotification instead of UIDeviceOrientationDidChangeNotification.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(repositionView:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];
-(void)repositionView:(NSNotification *)notification
{
UIInterfaceOrientation orientation = [[[notification userInfo] objectForKey: UIApplicationStatusBarOrientationUserInfoKey] integerValue];
if (UIInterfaceOrientationIsLandscape(orientation)) {
NSLog(@"view (%@) will set orientation landscape",self);
// do smt
} else {
NSLog(@"view (%@) will set orientation portrait",self);
//do smt else
}
}