web-dev-qa-db-ja.com

iPadのUIActionSheetにキャンセルボタンが表示されない

UIActionSheetにキャンセルボタンを表示しようとしていますが、表示されません。これは許容できる動作ですか?アドバイスを下さい。

UIActionSheet *actionSheet = [[UIActionSheet alloc]
          initWithTitle:@"Are you sure you want to clear the cache?"
          delegate:self
          cancelButtonTitle:@"No"
          destructiveButtonTitle:@"Yes"
          otherButtonTitles:nil];

[actionSheet showInView:self.view];  

[actionSheet release];

28
Ahmad Kayyali

iPadには、表示元に応じて、アクションシートとそのキャンセルボタンに関するいくつかの特別なルールがあります。

アクションシートは、ツールバー、タブバー、ボタンバーの項目、またはビューから表示できます。このクラスは、アクションシートの表示方法を決定するときに、開始ビューと現在のプラットフォームを考慮に入れます。 iPhoneおよびiPodtouchデバイスで実行されているアプリケーションの場合、アクションシートは通常、ビューを所有するウィンドウの下部から上にスライドします。 iPadデバイスで実行されているアプリケーションの場合、アクションシートは通常、適切な方法で開始ビューに固定されたポップオーバーで表示されます。ポップオーバーの外側をタップすると、カスタムボタン内のタップと同様に、アクションシートが自動的に閉じられます。プログラムで却下することもできます。

IPadでアクションシートを提示する場合、キャンセルボタンを含めないことがあります。アクションシートのみを表示している場合、システムはアニメーションを使用せずにポップオーバー内にアクションシートを表示します。ポップオーバーの外側をタップすると、アイテムを選択せず​​にアクションシートが閉じられるため、デフォルトでシートがキャンセルされます。したがって、キャンセルボタンを含めると、混乱が生じるだけです。ただし、既存のポップオーバーがあり、アニメーションを使用して他のコンテンツの上にアクションシートを表示している場合は、キャンセルボタンが適切です。詳細については、iPadヒューマンインターフェイスガイドラインを参照してください。

詳細な説明のあるリンクは次のとおりです。 http://crazyviraj.blogspot.com/2010/05/showing-cancel-button-in.html

54
nevan king