0

次のように、UIViewController 内に UIActionSheet を作成しようとしています。

discardAS = [[UIActionSheet alloc] initWithTitle:"title" delegate:self cancelButtonTitle:"Cancel" destructiveButtonTitle:"Discard" otherButtonTitles:nil];

discardAS.actionSheetStyle = UIActionSheetStyleDefault;
[discardAS showInView:[self view]];

私がそれを呼び出すと、画面全体が「暗くなります」(アクションシートが実際に前景にあるかのように) - しかし、アクションシートは表示されません)。「オフスクリーン」が表示されているようです。

iOS7 でこれを試してみると、白いボックスが上向きに伸び、すぐに画面から消えていくのがわかります。あたかも ActionSheet が画面の上部に配置されているかのようです。ウィンドウをクリックすると、薄暗さがなくなり、すべて正常です。アクションシートをタップして消えた場合の iOS7 のように。

したがって、私は、ActionSheet が画面の範囲について (および範囲外で) 表示されていると結論付けています。

コンソールにも次のように表示されます

 Presenting action sheet clipped by its superview. Some controls might not respond to touches. On iPhone try -[UIActionSheet showFromTabBar:] or -[UIActionSheet showFromToolbar:] instead of -[UIActionSheet showInView:].

どちらも試してみましたが、結果は同じでした。self.view.frame を表示すると、約 0,0,300,200 の rect が表示されるため、グロテスクな特大サイズではありません。

理由、または修正/デバッグする方法はありますか?

4

1 に答える 1

0

後世のために-答えは、階層に「追加のビューコントローラー」があったことでした-ここで説明されているように: iOS 6: このビューコントローラー階層が壊れた原因は何ですか?

于 2013-09-25T12:38:39.267 に答える