The issue only can be reproduced in iOS 7.
In the delegate function:- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
, if a UIAlertView is created, the alert view cannot auto rotate. Here is the sample code:
- (IBAction)buttonTapped:(id)sender
{
UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:@"action sheet"
delegate:self
cancelButtonTitle:@"cancel"
destructiveButtonTitle:@"ok"
otherButtonTitles:nil];
[actionSheet showInView:self.view];
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"alert"
message:nil
delegate:self
cancelButtonTitle:@"ok"
otherButtonTitles:nil];
[alert show];
}
Is this a bug of iOS 7? If yes, is there any way to make the alert view auto rotate with the other view in the screen?
Try presenting the alertview from another delegate method of UIActionSheet. This does work:
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
This surely looks like a bug in iOS7 :)
来源:https://stackoverflow.com/questions/19491060/ios-7-uialertview-created-in-uiactionsheet-delegate-function-cannot-auto-rotate