UIAlertView
優先メッセージがサーバーから収集されたときに表示される、単純なメッセージアラートシステムを作成しようとしています。メッセージは、次の形式のタブ区切り文字列として送信されます。
Priority:TRUE\tTrackingID:MESSAGEID\tFrom:FROMUSERNAME\tFromID:FROMID\tSentTime:SENTTIME\tMessage:text
メッセージはテーブル ビューにリストとして表示されます。セルをクリックすると、メッセージの内容を含む詳細ビューに移動します。メッセージが優先度としてマークされている場合、警告が表示され、閉じると、ユーザーはそのメッセージの詳細ビューに直接移動します。
各文字列を処理するためのコードは次のとおりです。
NSArray *msgArray = [messageString componentsSeparatedByString:@"\t"];
[self storeMessageData:msgArray];
それで:
- (void) storeMessageData: (NSArray *)messagesArray
{
if ([messagesArray[0] isEqualToString:@"Priority:True"])
{
[self alertWithMessage:@"priority"];
}
}
と:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
[self performSegueWithIdentifier:@"showPriority" sender:self];
}
}
これは、メッセージが 1 つしか取得されていない場合は問題なく動作しますが、2 つ以上のメッセージがある場合は、アラートを閉じると引き続きセグエが実行されますが、メッセージが存在する回数だけ、アラートがすぐに再びポップアップし、その後に別のセグエが続きます。
私が知りたいのは、このプロセスを中断して、ユーザーが最初のメッセージを処理できるようにする方法です。複数のメッセージがある場合は、前のビューに戻るときに別のアラートが表示されます。どんなアイデアでも大歓迎です。