Я использовал AMSSlideMenuController создать свой основной VCИзменение ориентации только на одном View Controller, замок другие в портретном режиме (Xcode 6.2)
@interface LoggedIn_MainVC : AMSlideMenuMainViewController
@end
И В App делегатом создать его с помощью:
//start first vc
self.mainVC = [[LoggedIn_MainVC alloc] init];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
В LoggedIn_MainVC, я создаю левое и правое меню как с помощью AMSSlideMenuTableViewController, например, так:
@interface LeftMenuVC : AMSlideMenuLeftTableViewController
и они оба экземпляра как и в LoggedIn_MainVC:
*******************************/
self.leftMenu = [[LeftMenuVC alloc] initWithNibName:@"LeftMenuVC" bundle:nil];
self.rightMenu = [[RightMenuVC alloc] initWithNibName:@"RightMenuVC" bundle:nil];
/*******************************
В левом меню, у меня есть StartPageView, VideoPageView и SettingsView. Я хочу заблокировать все другие виды в портретном режиме, кроме VideoView. LeftMenuVC:
#pragma mark - TableView Delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
- {UINavigationController *nvc;
UIViewController *rootVC;
switch (indexPath.row) {
case 0:
{
rootVC = [[VCLoggedIn_StartPage alloc] initWithNibName:@"VCLoggedIn_StartPage" bundle:nil];
}
break;
case 1:
{
rootVC = [[VCLoggedIn_Levels alloc] initWithNibName:@"VCLoggedIn_Levels" bundle:nil];
}
break;
case 2:
{
rootVC = [[VCLoggedIn_Videos alloc] initWithNibName:@"VCLoggedIn_Videos" bundle:nil];
}
break;
case 3:
{
rootVC = [[VCLoggedIn_Settings alloc] initWithNibName:@"VCLoggedIn_Settings" bundle:nil];
}
break;
default:
break;
}
nvc = [[UINavigationController alloc] initWithRootViewController:rootVC];
[self openContentNavigationController:nvc];
}
Я использую в AppDelegate
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}
и VideoView:
-(BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger) supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}
Для OtherViews:
-(BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
Все виды ведут себя одинаково (BO й пейзаж и портрет). Однако я обнаружил, что, когда я ставлю этот режим ориентации в LoggedIn_MainVC (The MainView Controller):
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}
- (BOOL)shouldAutorotate
{
return YES;
}
Все другие взгляды ведет себя так, как эта функция (supportedInterfaceOrientations) в LoggedInMainVC определен. Когда я перехожу только к UIInterfaceOrientationMaskPortrait, все представления имеют только портретный режим и наоборот. Их собственное определение supportedInterfaceOrientations не работает. Что мне не хватает или что-то не так. Пожалуйста, помогите мне
спасибо за предложение ... но до сих пор не working..same проблема – pawn