代码之家  ›  专栏  ›  技术社区  ›  Zen_silence

DismissModalView ControllerAnimated函数不解除视图

  •  2
  • Zen_silence  · 技术社区  · 16 年前

    我想用 dismissModalViewController:Animated: 拒绝我的观点,但不管我怎么努力,这并不是拒绝它。您可以看到我在 hideSplash 方法位于底部。如果有人能帮忙,我将不胜感激。我的代码发布在下面:

    #import "SplashViewController.h"
    
    @implementation SplashViewController
    
    - (void) didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
    }
    
    - (void) viewDidUnload {
    
    }
    
    - (void) dealloc {
        [super dealloc];
    }
    
    -(void) showSplash {
        modalViewController = [[UIViewController alloc] init];
        modalViewController.view = modelView;
        [self presentModalViewController:modalViewController animated:NO];
        [activityIndicator startAnimating ];
        //[self bigcalculation];
        //[self performSelector:@selector(hideSplash) withObject:nil afterDelay:2.0];
    }
    
    - (void) viewDidAppear:(BOOL)animated {
        NSLog(@"View Did Appear");
        [self bigcalculation];
    }
    
    - (void) bigcalculation {
        NSLog(@"Big Calc Start");
        for (int i = 0; i <= 648230; i++) {
            for (int j = 0; j <= 1200; j++) {
    
            }
        }
        NSLog(@"Big Calc End");
        [self performSelector:@selector(hideSplash) withObject:nil];
    }
    
    - (void) hideSplash {
        NSLog(@"Hide");
        //[self dismissModalViewControllerAnimated:NO];
        //[[self parentViewController] dismissModalViewControllerAnimated:YES];
        [[self modalViewController] dismissModalViewControllerAnimated:YES];
        NSLog(@"End Hide");
    }
    
    @end
    
    3 回复  |  直到 13 年前
        1
  •  9
  •   Mark Adams    16 年前

    模态视图控制器不负责解除。这个负担由称为ModalView控制器的视图控制器承担。

    尝试更换:

    [[self modalviewController] dismissModalViewControllerAnimated:YES];
    

    具有

    [self dismissModalViewControllerAnimated:YES];
    
        2
  •  2
  •   EdChum Arthur G    14 年前

    尝试使用:

    [self.parentViewController dismissModalViewControllerAnimated:NO];
    
        3
  •  1
  •   Zen_silence    16 年前

    我找到了解决方案,以防其他人有此问题

    [self performSelector:@selector(hideSplash) withObject:nil];
    

    应该是

    [self performSelector:@selector(hideSplash) withObject:nil afterDelay:0.0];
    
    推荐文章