私のアプリでは、ユーザーがボタンをクリックすると、prepareForSegue が呼び出されます。アプリは状態を確認し、上書きまたは削除するかどうかをユーザーに確認する必要があります。問題は、UIActionSheet が表示される前に次の View Controller をロードすることです。prepareForSegue が呼び出される前に UIActionSheet を強制的に表示するにはどうすればよいですか? これが私の prepareForSegue のロジックです。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"mySegue"]) {
//Check Logic removed for simplicity
if ([myCheck count] > 0){
UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:@"Save?"
delegate:self
cancelButtonTitle:@"Delete"
destructiveButtonTitle:@"Save"
otherButtonTitles:nil];
[actionSheet showFromToolbar:self.navigationController.toolbar];
}
}
}
これがアクションシートです。
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex == [actionSheet cancelButtonIndex])
{
//Delete logic removed
}else {
//Save logic removed
}
}