I am using this code
UIWindow *window = [[UIApplication sharedApplication].windows objectAtIndex:0];
UIView * videoView = [[window subviews] lastObject];
[videoView addSubview:viewFullScreenToolbar];
to add a view on topmost view to play video on fullscreen. When the fullscreen button is pressed, this code executes and presents a fullscreen video. But when fullscreen is closed and then pressed again, the viewFullScreenToolbar is not visible although the video is playing correctly in fullscreen. Plus the problem is only in landscape mode, it works good in portrait mode.
Its seems so obvious once you find the answer. So, all I had to do was register for the orientation change notification.
NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(ChangeOrientationIfFullScreen:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];
And in the method called when the notification is received, I had to set the frames of the subviews manually for each orientation change. It was a bit of overhead but finally achieved a smooth transition on the screen.