2011-12-26 22 views
0

UIActionSheetUIProgressViewを追加してダウンロードの進行状況を示しました。だから、ユーザがボタンをクリックすると私のUIActionSheetが却下されないようにしたい。ユーザーがUIActionSheetのボタンをクリックしたときに、UIActionSheetが解除されないようにするにはどうすればよいですか?

しかし、これを行う方法はありますか?

今すぐdidDismissWithButtonIndexデリゲートメソッドを実装して、UIActionSheetを表示してからもう一度表示します。しかし、私はよりよい方法があることを望んでいました。

+1

アクションシートの一部のコードを投稿していただくか、非表示にできますか? – Hiren

+0

私たちがあなたが実装したものがわかるようにコードを投稿してください – Leena

答えて

2

UIActionSheetは、UIを完全にブロックするモーダルビューです。 UIをブロックすることは悪い習慣とみなされるため、アクションシートの却下を防ぐことはサポートされていません。代わりに、アクションシートの外に完全に別の進捗インジケータを作成する必要があります。

+0

いいえ、私はそれを完全にブロックしませんでした。 UIActionSheetにはまだキャンセルボタンがあります。ユーザーはキャンセルボタンをクリックすることでUIActionSheetを閉じることができます。私はちょうどユーザーがダウンロードボタンをクリックしたときにそれを却下したくなかった。 – Qiulang

+0

iOS 8ではそれ以上のことはできません。そして、あなたの言葉は、「アクションシートの外に完全に別の進捗インジケータを作ってください」。最初から正しかった。ありがとう! – Qiulang

0

@ Yar、回答ありがとうございます。私はあなたの解決策をもう一度試してみます。

私の現在の解決策にも満足しています。 UIActionSheet.hは、だから私は、任意のボタンを打つことは、常にアクションシートを閉じます推測

// Called when a button is clicked. **The view will be automatically dismissed after this call returns** 
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex; 

を言いました。その後、私の解決策は、まずプログレスバーを隠すことです。ユーザーがダウンロードボタンを押すと、アクションシートを再度表示しますが、ダウンロードボタンを非表示にして進行状況バーを表示します。

キャンセルボタンは、ダウンロードを開始してもダウンロードをキャンセルしたい場合に備えています。

関連する問題