UIAlertController ActionSheet触发第二个ActionSheet

时间:2016-06-23 05:26:57

标签: ios objective-c uiactionsheet uialertcontroller

对于我的应用程序,我有一个区域,我希望可以选择执行两个操作表。当触摸TableView上的一行以投票选择一个选项时,它会提供3个选项,竖起大拇指,竖起大拇指或查看建议日期。然后单击“竖起大拇指”应该提供另一个具有可用日期的操作表。我得到这个以弹出第二张,但随后它会自动被解雇,这要归功于代码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];

1 个答案:

答案 0 :(得分:0)

在提出另一个之前先解散。

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