IOS : Mam aplikację, która otwiera niektóre treści i dodałem przycisk na prawym pasku nawigacyjnym, który może usuwać treść wiadomości z zapisanego przechwytywania, Teraz chcę umieścić akcję potwierdzania zgodną z użytkownikiem przed usunięciem wiadomości, stworzyłem arkusz UIAction w następujący sposób:
sheet = [[UIActionSheet alloc] initWithTitle:@"Delete Message" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Delete Message" otherButtonTitles:nil];
// view sheet
[sheet showInView:self.view];
NSLog(@"Button %d", buttonIndex);
Teraz jak mogę użyć tej wartości w mojej funkcji deleteContent? Moja funkcja usuwania to
-(void) deleteContent
{
if (buttonIndex=0)
{
[[NSFileManager defaultManager] removeItemAtPath:fileName error:&e];
}
}
Moje pytanie brzmi, jak mogę zmienić to w jednej funkcji, którą można wywołać w jednym wywołaniu i robi to wszystko.
2 odpowiedzi
To nie jest sposób na zrobienie tego. Wywołaj funkcję z przycisku na pasku nawigacyjnym, aby wyświetlić arkusz akcji. Następnie zaimplementuj metodę actionSheetDidDismissWithButtonIdex UIActionSheetDelegate, aby zająć się faktycznym usunięciem.
EDYCJA: Jeśli potrzebujesz przekazać tożsamość elementu do usunięcia z metody powodującej wyświetlenie arkusza akcji, po prostu dodaj parametr do metody presentActionSheet i przekaż element.
Osoby mające ten sam problem:
Utwórz funkcję dla przycisku, który może wywoływać wyskakujące okienko w następujący sposób:
-(void)popUp
{
sheet = [[UIActionSheet alloc] initWithTitle:@"Are you Sure?"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"Delete Message"
otherButtonTitles:nil];
// Show the sheet
[sheet showInView:self.view];
//[sheet release];
NSLog(@"Button %d", buttonIndex);
}
A następnie utworzyć jeszcze jedną funkcję, która obsługuje usuwanie części na podstawie akcji wyskakującej, takiej jak ta:
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0) { //delete it
//delete from database
//delete from folder
[[NSFileManager defaultManager] removeItemAtPath:fileName error:&e];
//close
[[self navigationController] popViewControllerAnimated: YES];
}else if {
NSLOG(@"USER said No");
}
}
Podobne pytania
Nowe pytania
ios
iOS to mobilny system operacyjny działający na urządzeniach Apple iPhone, iPod touch i iPad. Użyj tego tagu [ios] w przypadku pytań związanych z programowaniem na platformie iOS. Użyj powiązanych tagów [objective-c] i [swift] w przypadku problemów specyficznych dla tych języków programowania.