As Siavash said, the General Tab in your Target is the best place to limit the orientations for the entire device.
If you wanted to set all orientations possible but limit it for certain View Controllers, you could do something like this:
- (BOOL) shouldAutorotate
{
return NO;
}
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return NO;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
if (condition)
{
return UIInterfaceOrientationPortrait;
}else{
return UIInterfaceOrientationLandscapeLeft;
}
}
To answer your second question, Apple does not critique an app based on its possible orientations. It's more up to you to decide which orientation(s) is/are best suited for your app. For iPhone Apps, users prefer Portrait usually for example (unless it's a game!).