我正在尝试编写一个简单的消息警报系统,并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];
}
}
如果只检索到一条消息,但如果有两条或更多条消息,则此方法可以正常工作,解除警报仍会执行 segue,但随后警报会立即再次弹出,然后是另一个 segue,次数与消息数一样多。
我想知道的是我将如何中断此过程,以便用户能够处理第一条消息,如果有多个消息,则在返回上一个视图时会显示另一个警报。任何想法表示赞赏。