アクションシートボタンによってトリガーされたときに(おそらく)サブビューを表示する次のコードがあります。
- (void) actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex ==0) {
[self.view addSubview:self.customView];
//
// heavy lifting of method here
//
// self.customView removes itself from superview before actionSheet:dismissWithButtonIndex: finishes
}
}
すべての「重い作業」を行った後、サブビューはビュー階層から削除されます (アクション シートのデリゲート メソッドが完了する前)。
ああ!サブビューが画面に表示されないことがわかりました。実際、追加されたサブビューがそれ自体を閉じるのを止めてブレークポイントを設定すると、それが表示されることがわかりますが、UIActionSheet デリゲート メソッドが完了した後にのみ表示されます。
最初は、サブビューがactionSheet:clickedButtonAtIndex:
UIActionSheet デリゲート メソッドで表示されていたため、アクション シートがビューの表示をブロックしているためだと考えていました。
利用可能な他の方法を見ると、(Apple Docsごとに)actionSheet:didDismissWithButtonIndex:
私の問題を解決できるように思えました。This method is invoked after the animation ends and the view is hidden
まだ運がない!
メソッドが完了する前に、このサブビューをどのように提示するかについての考え。