触发第二个 ActionSheet 的 UIAlertController ActionSheet

UIAlertController ActionSheet Which Triggers A 2nd ActionSheet

对于我的应用程序,我有一个区域希望可以选择执行两个操作 sheet。当触摸 TableView 上的一行以投票给一个选项时,它会给出 3 个选择,赞成、反对或查看建议的日期。单击“竖起大拇指”应该会给出另一个具有可用日期的操作 Sheet。我让它弹出第二个 sheet,但随后它会自动关闭,这要归功于代码 self dismissViewController 关闭了两者,而不是仅仅关闭了一个。我有什么想法可以做得更好吗?

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];

先解散再介绍。

[self dismissViewControllerAnimated:YES completion:^{
    [self presentViewController:actionSheet2 animated:YES completion:^{
    }];
}];