我正在尝试编写一个简单的消息警报系统,当从服务器收集优先级消息时,它会显示一个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];
}
}如果仅检索到一条消息,则此方法工作正常,但如果有两条或更多条消息,则消除警报仍会执行分段,但随后警报会立即再次弹出,紧随其后的是另一条分段,次数与消息的次数相同。
我想知道的是,我将如何中断此过程,以便用户能够处理第一个消息,如果有多个消息,则在返回到上一个视图时会显示另一个警告。任何想法都很感谢。
发布于 2013-06-18 00:06:49
在循环时,不要遍历所有消息并调用为每个消息显示警报的方法,这会导致向用户显示多个警报,而是将所有“优先级”消息添加到一个数组中。然后,检查数组中的警报数量,您可以显示一个反映此信息的警报:例如,对于一条消息,您可以显示该消息的标题和一些其他信息,如标题和alertView的消息,而当您有多条消息时,您可能会有一个类似于“您有x条具有高优先级的新消息”的标题,其中x是消息的数量和一些其他描述。
https://stackoverflow.com/questions/17151604
复制相似问题