For my app, I have one area where I would like the option to do two action sheets. When touching a row on a TableView to vote for one option, it gives 3 choices, thumbs up, thumbs down, or view proposed dates. Clicking Thumbs Up should then give another Action Sheet that has the available dates. I get this to pop up the second sheet, but then it is dismissed automatically, thanks to the code self dismissViewController dismissing both, instead of just the one. Any thoughts as to how I could do this better?
UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:@"Vote" message:@"Please vote thumbs up or thumbs down for this activity. Vote only one time, please, except for Cricket who may vote again for Casey...who still doesn't have an iPhone. Cricket, use this power wisely." preferredStyle:UIAlertControllerStyleActionSheet];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
// Cancel button tappped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Thumbs Up" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
UIAlertController *actionSheet2 = [UIAlertController alertControllerWithTitle:@"Date" message:@"What Date?" preferredStyle:UIAlertControllerStyleActionSheet];
[actionSheet2 addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
// Cancel button tappped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
[actionSheet2 addAction:[UIAlertAction actionWithTitle:@"Sunday" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[self dismissViewControllerAnimated:YES completion:^{
//Sunday
[entry addObject:@"Sunday" forKey:@"DatesSuggested"];
[entry saveInBackground];
[self loadObjects];
}];
}]];
[actionSheet2 addAction:[UIAlertAction actionWithTitle:@"Monday" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[self dismissViewControllerAnimated:YES completion:^{
//Sunday
[entry addObject:@"Monday" forKey:@"DatesSuggested"];
[entry saveInBackground];
[self loadObjects];
}];
}]];
[actionSheet2 addAction:[UIAlertAction actionWithTitle:@"Tuesday" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[self dismissViewControllerAnimated:YES completion:^{
//Sunday
[entry addObject:@"Tuesday" forKey:@"DatesSuggested"];
[entry saveInBackground];
[self loadObjects];
}];
}]];
[actionSheet2 addAction:[UIAlertAction actionWithTitle:@"Wednesday" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[self dismissViewControllerAnimated:YES completion:^{
//Sunday
[entry addObject:@"Wednesday" forKey:@"DatesSuggested"];
[entry saveInBackground];
[self loadObjects];
}];
}]];
[actionSheet2 addAction:[UIAlertAction actionWithTitle:@"Thursday" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[self dismissViewControllerAnimated:YES completion:^{
//Sunday
[entry addObject:@"Thursday" forKey:@"DatesSuggested"];
[entry saveInBackground];
[self loadObjects];
}];
}]];
[actionSheet2 addAction:[UIAlertAction actionWithTitle:@"Friday" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[self dismissViewControllerAnimated:YES completion:^{
//Sunday
[entry addObject:@"Friday" forKey:@"DatesSuggested"];
[entry saveInBackground];
[self loadObjects];
}];
}]];
[self presentViewController:actionSheet2 animated:YES completion:^{
}
];
NSInteger numberFor = [entry[@"VotesFor"] intValue];
NSInteger newValue = numberFor + 1;
NSString *newVotesFor = [NSString stringWithFormat: @"%ld", (long)newValue];
[entry setObject:newVotesFor forKey:@"VotesFor"];
[entry saveInBackground];
[self loadObjects];
// Distructive button tapped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Thumbs Down" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
NSInteger numberAgainst = [entry[@"VotesAgainst"] intValue];
NSInteger newValue1 = numberAgainst + 1;
NSString *newVotesAgainst = [NSString stringWithFormat: @"%ld", (long)newValue1];
[entry setObject:newVotesAgainst forKey:@"VotesAgainst"];
[entry saveInBackground];
[self loadObjects];
// OK button tapped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"View Proposed Dates" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
DetailsViewController *theDetails = [[DetailsViewController alloc] init];
theDetails.theActivity = entry;
// OK button tapped.
[self.navigationController pushViewController:theDetails animated:YES];
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
// Present action sheet.
[self presentViewController:actionSheet animated:YES completion:nil];
Aucun commentaire:
Enregistrer un commentaire