In iOS6, auto rotate and orientation changes have changed , so i solved the problem using the following steps
1) You will need to assign a root view controller to your main application window on FinishedLaunching.
So if previously like me you have this in your FinishedLaunching(UIApplication app)
method in main.cs:
window.AddSubview(mainVC.View);
Replace it with this:
window.RootViewController = mainVC;
2) Replace this:
public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
With these two functions:
public override bool ShouldAutorotate()
{
return true;
}
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations()
{
return UIInterfaceOrientationMask.All;
}
3- you can fire the rotation action using WillRotate
function