[解決済み] UIActionSheetのキャンセルボタンの動作がおかしい
質問
UIBarButtonItem でアクション シートを開き、ユーザーに何を行うかの選択肢を提供するようにしています。すべてが、"Cancel" ボタンをクリックしようとしない限り、期待どおりに動作します。ボタンのターゲットが、あるべき場所から上に移動しているように見えます。私は、"Cancel" と "Ok" ボタンの中間のどこかをクリックすることによってのみ、それをアクティブにすることができます。
他のアプリケーションでアクション シートを試してみましたが、正常に動作しました。アクションシートは UIViewController で開いています。
- (void)showOpenOptions
{
UIActionSheet *sheet = [[UIActionSheet alloc]
initWithTitle:NSLocalizedString(@"Open link in external application?", @"Open in external application")
delegate:self
cancelButtonTitle:NSLocalizedString(@"Cancel", @"Cancel")
destructiveButtonTitle:NSLocalizedString(@"Open Link", @"Open Link")
otherButtonTitles:nil];
[sheet showInView:self.view];
[sheet release];
}
どのように解決するのですか?
現在のビューコントローラのビューをアクションシートに渡す代わりに
showFromTabBar:
のメソッドを使用します。
UIActionSheet
.
正しい方法
これで、正しいタップ可能領域が得られます。
[actionSheet showFromTabBar:self.tabBarController.tabBar];
間違った方法
これは、タップ可能な領域を間違った場所に配置します(タブバーやツールバーを使用している場合)。
[actionSheet showInView:self.view];
ツールバーを使っている場合
を使用します。
showFromToolbar:
メソッドを使います。ツールバーへの参照が必要です。
[actionSheet showFromToolbar:self.myToolbar];
昔の回答 また、動作しますが、ハッキーです。
ちょうど可能な答えを見つけました。
01-Dec-2008 10:22 PM Tom Saxtonです。 このバグをもう少し見てみましたが、タブバーの問題であるようです。
UITabViewController の子であるビューコントローラから UIActionSheet の [sheet showInView:self.view] を呼び出した場合、UIActionSheet のタブバーのビューの上にある部分でキャンセルボタンのヒットテストが失敗します。
代わりにUITabBarControllerのビューを渡す場合、UIActionSheetは期待通りに動作します。
注意:iPhone OS 2.1 以前では、子ビューを渡すと UIActionSheet はタブバーの上部から上がってきましたが、2.2 ではタブバーの下部から上がってくるので、タブビューを覆ってしまうことになります。
http://openradar.appspot.com/6410780
編集する。 タブバーのビューに変更すると正常に動作するようになりました
[sheet showInView:self.parentViewController.tabBarController.view];
関連
-
JenkinsがIOSを自動パッケージングしてモミを配布
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] iOS Simulatorでネットワークを無効にすることは可能ですか?
-
[解決済み] インポート vs #インポート - iOS 7
-
[解決済み] iOSで現在のデバイスの言語を取得するには?
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] コア・データ エンティティの全インスタンスを削除する最短の方法
-
[解決済み] UITableView - トップにスクロールする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] UIButtonのタイトルを左揃えにするにはどうしたらよいですか?
-
[解決済み] コードサインエラーです。期限切れのプロファイルを削除した後、プロビジョニングプロファイルが見つからない
-
[解決済み] アプリのプレビュー用にiOSシミュレータのビデオをキャプチャー
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み] NSNotificationCenterのaddObserver in Swift
-
[解決済み] swiftで電子メールアドレスを検証する方法は?