私は一日中これを解決しようとしてきました。mainWindow.xib を 4 インチの iPhone 5 バージョンにアップグレードし、すべての ActionSheets が 4 インチのシミュレーターで正常に動作しました。ただし、3.5 インチ デバイスで縦向きモードでメールの作成をキャンセルすると、アクション シートが完全に表示されません ([キャンセル] ボタンが非表示になります)。
提供されたヘルプに感謝します。
縦向きの問題のスクリーンショットは次のとおりです。
mainWindow.xib が現在 4 インチ バージョンであるため、アクション シートを表示し、3.5 インチの画面サイズに対抗するために使用しているコードを次に示します。
sheet = [[UIActionSheet alloc] initWithTitle:nil
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:@"Share via iMessage/SMS", @"Share via E-Mail", @"Review App", nil];
// This code is for the iPhone 5 portrait & landscape, 3.5" landscape, and iPad
if ([[UIScreen mainScreen] applicationFrame].size.height == 548 | orientation == UIInterfaceOrientationLandscapeLeft | orientation == UIInterfaceOrientationLandscapeRight | UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
[sheet showInView:self.parentViewController.view];
}
// This code is for 3.5" portrait
else
{
[sheet showInView:self.parentViewController.view];
[sheet setFrame:CGRectMake(0, 220, 320, 320)];
}