Перевернутая проблема ориентации в iOS6
Я создаю образец пустого приложения и добавил класс UIViewController,
Ниже приведен код в приложении Delgate
TestViewController* viewController = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self.window setRootViewController:navController];
Сейчас я вращаю приложение, но в навигационной панели UPsidedown Orientation не вращается. Я прикрепляю снимок экрана
Затем добавлен метод ниже в делегат приложения
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
return UIInterfaceOrientationMaskAll;
}
И в классе я добавил следующие методы
-(BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return (UIInterfaceOrientationMaskAll);
}
В Резюме я активировал все ориентации, может ли кто-нибудь сказать мне Решение для этого
4 ответа
1) Просто вы создали категорию для класса UINavigationController и я определил эти методы
В CustomViewController.h
#import <UIKit/UIKit.h>
@interface CustomViewController : UINavigationController
@end
В CustomViewController.m
#import "CustomViewController.h"
@interface CustomViewController ()
@end
@implementation CustomViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(BOOL) shouldAutorotate{
return YES;
}
-(NSUInteger) supportedInterfaceOrientations{
return UIInterfaceOrientationMaskAll;
}
И файл AppDelgate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
CustomViewController *navController = [[CustomViewController alloc] initWithRootViewController:self.viewController];
// Override point for customization after application launch.
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
return YES;
}
2) И проверьте ориентацию в цели
3) Измените класс с UINavigationController на CustomViewController в моем XIB в IB
4) Перезагрузите симулятор и запустите код, думаю, ваша проблема будет решена.
Перевернутая кнопка для включения в Supported interface orientations
на XCode
Я думаю, что вам нужно использовать
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return TRUE;
}
вместо mustAutorotate
`TestViewController * viewController = [[TestViewController alloc] initWithNibName: @" TestViewController "bundle: nil];
[self.window setRootViewController: viewController]; `
удалите панель навигации из appdelegate и затем проверьте