UIAlertControllers之间的过渡

时间:2019-02-11 06:06:21

标签: ios objective-c segue uialertcontroller

我需要做的是提供一个带有progressBar的警报控制器。下载完成后,我需要转换为具有成功的辅助警报控制器!消息和“确定”按钮,以便用户退出此设置。我已经分别构建了警报,它们可以独立运行(进度条也可以正常工作...),但是使用以下代码:

我希望当progressBar达到100%时,第一个警报控制器将被关闭,而下一个警报将显示,但是没有任何反应这是我的代码:

-(void)settingUpToolsProgressPopUp {
 UIAlertController* progressAlert = [UIAlertController alertControllerWithTitle:@"Setting up tools ..." message:@"This could take a few minutes. Make sure to keep your tools near your mobile device." preferredStyle:UIAlertControllerStyleAlert];
 [self presentViewController:progressAlert animated:YES completion:^{
 //Progress bar setup
 UIProgressView *progressView;
 progressView = [[UIProgressView alloc]initWithFrame:CGRectMake(8.0, 98.0, progressAlert.view.frame.size.width - 16, 100.0)];

 [[progressView layer]setCornerRadius:50];
 progressView.trackTintColor = [UIColor whiteColor];
 progressView.progressTintColor = [UIColor blueColor];
      progressNumerator = 1.0;
      progressDenominator = 1.0;
      currentProgress = (float)(progressNumerator/progressDenominator);
      [progressView setProgress: currentProgress animated:YES];
 [progressAlert.view addSubview:progressView];

  if(currentProgress > 1.0){
      [self settingUpToolsProgressPopUp];
 } else if(currentProgress == 1.0){
      [self dismissViewControllerAnimated:YES completion:nil];
      [self successAlertPopUp];
 }

 }];


 }

p.s。我知道这些值现在已经被硬编码了……但是无论我使用什么值,都不会发生过渡。我还没有访问更新值的权限,所以我现在不能使用其他值...但是我希望如果我使用100%的值,那么转换还是会发生吗?

有人能指出正确的方向吗?为什么这些代码不能在这些控制器之间进行转换?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您需要在successAlertPopUp的完成处理程序中调用dismissViewControllerAnimated方法:

[self dismissViewControllerAnimated:YES completion:^{
    [self successAlertPopUp];
}];