objective c - Unable to detect portrait orientation on iPhone -
i displaying modal view controller when rotate landscape. want remove modal view controller when in portrait. reason, log statement doesn't appear when go portrait mode.
- (bool)shouldautorotatetointerfaceorientation:(uiinterfaceorientation)interfaceorientation { // return yes supported orientations. return (interfaceorientation == uiinterfaceorientationportrait || interfaceorientation == uiinterfaceorientationportraitupsidedown || interfaceorientation == uiinterfaceorientationlandscapeleft || interfaceorientation == uiinterfaceorientationlandscaperight); } -(void)willanimaterotationtointerfaceorientation:(uiinterfaceorientation)tointerfaceorientation duration:(nstimeinterval)duration { if (tointerfaceorientation == uiinterfaceorientationlandscapeleft || tointerfaceorientation == uiinterfaceorientationlandscaperight) { nslog(@"showing chart"); [self presentmodalviewcontroller:landscapechartviewcontroller animated:no]; } if (tointerfaceorientation == uiinterfaceorientationportrait || tointerfaceorientation == uiinterfaceorientationportraitupsidedown) { nslog(@"dismissing chart"); [self.parentviewcontroller dismissmodalviewcontrolleranimated:no]; } }
you can simplify code bit, might narrow down.
- (bool)shouldautorotatetointerfaceorientation:(uiinterfaceorientation)interfaceorientation { // return yes supported orientations. return yes; // return yes same entering interfaces. } -(void)willanimaterotationtointerfaceorientation:(uiinterfaceorientation)tointerfaceorientation duration:(nstimeinterval)duration { if (uiinterfaceorientationislandscape(tointerfaceorientation)) { nslog(@"showing chart"); [self presentmodalviewcontroller:landscapechartviewcontroller animated:no]; } if (uiinterfaceorientationisportrait(tointerfaceorientation)) { nslog(@"dismissing chart"); [self.parentviewcontroller dismissmodalviewcontrolleranimated:no]; // self.parentviewcontroller seems call modalviewcontroller. // should moved modalviewcontrollers implementation } }
just looking @ it, i'm thinking need dismiss modal view controller inside modal view, not inside parent view. so, use landscape version inside primary controller, , add "willanimaterotation..." modal controller handle portrait rotation state.
Comments
Post a Comment