Ich habe vor kurzem eine Klasse geschrieben, die ein benutzerdefiniertes Tabellenblatt aus einer Tabellenzelle darstellt, in diesem Aktionsblatt ist ein Auswahlfenster und eine Symbolleiste. Wenn die Fertig-Schaltfläche in der Symbolleiste gedrückt wird, wird eine Benachrichtigung mit dem ausgewählten Auswahllistenwert gesendet und das Aktionsblatt wird geschlossen. Manchmal verschwindet das Aktionsblatt aus der Ansicht, wenn die Schaltfläche "Fertig" gedrückt wird. Es scheint jedoch, dass die modale Eigenschaft dieses Aktionsblatts so bleibt, als ob ich nichts in der angezeigten Ansicht auswählen kann. Der Wechsel zu einem anderen Tab und das Zurückkommen scheint das zu lösen. Hat jemand irgendwelche Ideen, was könnte das verursachen?Aktionsblatt wird nicht gelöscht
Unten ist der Code, den ich verwende meine actionsheet zu entlassen:
-(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];
}
und die Benachrichtigungsmethode, die aufgerufen wird:
-(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];
}
Dank für die Zeit nehmen diesen ziemlich langen Beitrag zu lesen, Will
den zweiten Parameter von '-reloadRowsAtIndexPaths: withRowAnimation:' ist kein 'BOOL'; es ist ein 'UITableViewRowAnimation' Typ – user102008