Недавно я написал класс, который представляет собой пользовательский листок со стола, на этом листе действий находится панель выбора и панель инструментов. Когда нажата кнопка «Готово» на панели инструментов, уведомление отправляется с выбранным значением pickerview, и лист действий отклоняется. Иногда лист действий исчезает из представления, когда нажата кнопка «Готово», однако оказывается, что модальное свойство этого листа действий остается таким, каким я не могу выбрать что-либо на отображаемом представлении. Перемещение на другую вкладку и возвращение, похоже, решает это. Есть ли у кого-нибудь идеи, что может быть причиной этого?Лист действия не принимается
Ниже приведен код, я использую, чтобы отклонить мой actionsheet:
-(void)doneButtonPressed:(id)sender{
if ([[self viewWithTag:1] isKindOfClass:[PickerView class]]) {
PickerView *picker = (PickerView *)[self viewWithTag:1];
if (picker.selectedRow == nil) {
[picker populateSelectRowForRow:0 andComponent:0];
}
NSNotification *note = [NSNotification notificationWithName:@"doneButtonPressed" object:self.indexPath userInfo:picker.selectedRow];
[[NSNotificationCenter defaultCenter] postNotification:note];
}else {
DatePickerView *picker = (DatePickerView *)[self viewWithTag:1];
NSDictionary *extraInfo = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] initWithObjects:[self formatDateToString:[picker date]], nil] forKeys:[[NSArray alloc] initWithObjects:@"value", nil]];
NSNotification *note = [NSNotification notificationWithName:@"doneButtonPressed" object:self.indexPath userInfo:extraInfo];
[[NSNotificationCenter defaultCenter] postNotification:note];
}
[self dismissWithClickedButtonIndex:0 animated:YES];
}
и способ уведомления, что называется:
-(void)pickerUpdate:(NSNotification *)note{
NSIndexPath *indexPath = [note object];
NSDictionary *extraInfo = [note userInfo];
NSDictionary *dict = [[tableController.sectionAndFields objectAtIndex:indexPath.section] objectAtIndex:(indexPath.row + kHeaderAndFooterOffset)];
[tableController.formDetails setObject:[extraInfo objectForKey:@"value"] forKey:[dict objectForKey:@"key"]];
NSArray *reloadArray = [[NSArray alloc] initWithObjects:indexPath, nil];
[indexPath release];
[self.tv reloadRowsAtIndexPaths:reloadArray withRowAnimation:NO];
[reloadArray release];
}
Спасибо, что нашли время, чтобы прочитать это довольно длинный пост, Будет ли
второго параметром of -reloadRowsAtIndexPaths: withRowAnimation: `не является` BOOL`; это тип `UITableViewRowAnimation` – user102008 2011-04-27 23:43:16