Как получить анимацию вращения с помощью класса ViewController? - PullRequest
1 голос
/ 20 ноября 2011

Я не получаю анимацию вращения, предоставляемую классом ViewController. Я думал, что настроил это правильно, но что-то не так, потому что это не происходит, и в отладчике я только ударил точку останова в функции shouldAutorotateToInterfaceOrientation только один раз при запуске, но не когда я поворачиваю устройство в симуляторе. Кто-нибудь знает, что я могу делать не так?

GLViewController.m

    #import "GLViewController.h"
    #import "GLView.h"

    @implementation GLViewController

    - (void)loadView {

        CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];

        GLView *glView = [[[GLView alloc] initWithFrame:applicationFrame] autorelease];
        self.view = glView;

    }

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // We can run in landscape mode
    return (UIInterfaceOrientationIsLandscape(interfaceOrientation));
}

@end

AppDelegate.m

#import "AppDelegate.h"
@implementation AppDelegate

@synthesize m_window = _window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    self.m_window = [[UIWindow alloc] initWithFrame: screenBounds];
    //m_view = [[GLView alloc] initWithFrame: screenBounds];
    m_viewController = [GLViewController alloc];
    [m_window addSubview:m_viewController.view];
    // Override point for customization after application launch.
    [self.m_window addSubview: m_viewController.view];
    [self.m_window makeKeyAndVisible];
}

Ответы [ 3 ]

2 голосов
/ 20 ноября 2011

Вы не вызываете init для вашего GLViewController экземпляра.Это может вызвать все виды странного поведения, включая (возможно) обратные вызовы вращения.

2 голосов
/ 20 ноября 2011
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.m_window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    m_viewController = [[GLViewController alloc] initWithFrame:CGRectMake(0,0,320,480)];  
    self.m_window.rootViewController = m_viewController;
    [self.m_window makeKeyAndVisible];
    return YES;
}
0 голосов
/ 20 ноября 2011

Я думаю, что вы должны попытаться создать объект UINavigationController и поместить на него свой контроллер представления (GLViewController) в "didFinishLaunchingWithOptions". Добавьте UINavigationController.view в качестве подпредставления вместо представления контроллера представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...