2010-08-31 4 views
0

то, что я сделал, отображает 10 изображений в виде сетки и 3 изображения в режиме портретирования, а то, что я сделал, когда когда-либо вращаю симулятор до пейзажа, тогда я должен отображать 4 изображения. Он также отображается с использованием кодаВращающийся ландшафтный режим

if(self.interfaceorientation == UIIntefaceorientationPortrait) { 
[self abc]; 
else { 
[self abclandscape]; 
} 

здесь а и abclandscape две функции он отлично работает, но он работает от начальных средств образует начиная, если я повернуть в ландшафтном режим или портретный режим он работает отлично .WHILE в середине, если я вращаться от пейзажа до портрета он не переходит к функции [self abc]. как я могу это решить?

ответ

1

Что вы можете сделать - либо использовать делегаты UIViewController, либо использовать NSNoticationCenter.
I.E. добавить в своем "viewDidLoad":

 [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) 
                name:UIDeviceOrientationDidChangeNotification object:nil]; 

И добавить функцию:

- (void)orientationChanged:(NSNotification *)notification 
{ 
    UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation; 
    if (UIDeviceOrientationIsLandscape(deviceOrientation)) 
    { 
    // Do one thing 
    } 
    else 
    { 
    // Do something else 
    } 
} 
0

@mahesh В методе shouldAutoRototate

 use 

    if(self.interfaceorientation == UIIntefaceorientationPortrait||self.interfaceorientation == UIIntefaceorientationPortraitUp..) 

{ } еще { }