Вот ChatViewController.m
, который получает сообщение, которое затем отображается в tableView
. Теперь, когда отправитель сообщения изменяется, я хочу дать пользователю возможность переключиться на новое сообщение (alert view
). Если пользователь нажимает на переключатель, как отображать сообщение?Как обновить мой UIViewController с новыми данными?
Так получено и отображается сообщение.
-(void)recvdMsg:(NSDictionary *)msg
{
NSString *currentUser = [msg objectForKey:@"sender"];
NSString *match = @"@";
NSString *preAt ;
NSScanner *scanner = [NSScanner scannerWithString:currentUser];
[scanner scanUpToString:match intoString:&preAt];
if (self.name == preAt) //same sender
{
NSMutableDictionary *newMsg=[[NSMutableDictionary alloc]init];
NSString *m = [msg objectForKey:@"msg"];
[newMsg setObject:m forKey:@"message"];
[newMsg setObject:converID forKey:@"conversationID"];
[newMsg setObject:@"1" forKey:@"FromTo"];
NSDate *today=[NSDate date];
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM-dd-yyyy HH:mm:ss"];
NSString *dt=[dateFormat stringFromDate:today];
[newMsg setObject:dt forKey:@"timeStamp"];
[self AddMessage:newMsg]; // adding to database.
NSBubbleData *heyBubble = [NSBubbleData dataWithText:m date:[NSDate date] type:BubbleTypeSomeoneElse];
[bubbleData addObject:heyBubble];
[bbltblView reloadData];
[bbltblView scrollBubbleViewToBottomAnimated:YES];
}
else //message from new sender
{
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"New Message from " message:preAt delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Switch", nil];
}
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0) // cancel button clicked
{
return;
}
else {
// switch button is clicked....How to go from here.....how would i reload data?
}
}
Используйте '[TableView reloadData];'. после обновления вашего источника данных –
Здесь, в случае нового пользователя, если вы хотите отображать сообщения только от нового пользователя, тогда в окне кода предупреждения удалите все объекты из bubbleData и добавьте только сообщение нового пользователя, если вы хотите получать данные от всех пользователей в bubbleData, но просто хотите отображать сообщения, а затем применять предикат на bubbleData на ключе «отправитель» и использовать фильтрованный массив для отображения данных в табличном представлении, не забудьте вызвать reloadData для tableview. –
Можете ли вы помочь с некоторым примером кода, пожалуйста. – icodes