2011-11-24 65 views
2

有人使用MBProgressHUD?我想在MBProgressHUD librairie提供的示例中使用动画showWithLabelMixed。我将这个代码从例子中复制到我的项目中。MBProgressHUD崩溃“在MBProgressHUD初始化器中使用的视图是零”

-(IBAction)showActivity:(id)sender 
{ 
    NSLog(@"Show Activity"); 
    [self showWithLabelMixed]; 

} 

- (void)showWithLabelMixed{ 

    HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view]; 
    [self.navigationController.view addSubview:HUD]; 

    HUD.delegate = self; 
    HUD.labelText = @"Conecting"; 
    HUD.minSize = CGSizeMake(135.f, 135.f); 

    [HUD showWhileExecuting:@selector(myMixedTask) onTarget:self withObject:nil animated:YES]; 
} 


- (void)myTask { 
    // Do something usefull in here instead of sleeping ... 
    sleep(3); 
} 

- (void)myProgressTask { 
    // This just increases the progress indicator in a loop 
    float progress = 0.0f; 
    while (progress < 1.0f) { 
     progress += 0.01f; 
     HUD.progress = progress; 
     usleep(50000); 
    } 
} 




- (void)myMixedTask { 
    // Indeterminate mode 
    sleep(2); 
    // Switch to determinate mode 
    HUD.mode = MBProgressHUDModeDeterminate; 
    HUD.labelText = @"Progress"; 
    float progress = 0.0f; 
    while (progress < 1.0f) 
    { 
     progress += 0.01f; 
     HUD.progress = progress; 
     usleep(50000); 
    } 
    // Back to indeterminate mode 
    HUD.mode = MBProgressHUDModeIndeterminate; 
    HUD.labelText = @"Cleaning up"; 
    sleep(2); 
    // The sample image is based on the work by www.pixelpressicons.com, http://creativecommons.org/licenses/by/2.5/ca/ 
    // Make the customViews 37 by 37 pixels for best results (those are the bounds of the build-in progress indicators) 
    HUD.customView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"37x-Checkmark.png"]] autorelease]; 
    HUD.mode = MBProgressHUDModeCustomView; 
    HUD.labelText = @"Completed"; 
    sleep(2); 
} 

但我有一个崩溃

终止应用程序由于未捕获的异常 “MBProgressHUDViewIsNillException”,理由是:“在 MBProgressHUD初始化所使用的观点是零。” 你能帮我吗?

回答

2

您正在使用初始化HUD视图是零 尝试用初始化它

[[UIApplication sharedApplication] keyWindow] 
+0

@DDanZimm哦,这是真的我没有navbarcontroller,我用tabBarController。我改变初始化HUD = [[MBProgressHUD alloc] initWithView:self.tabBarController.view]; ,HUD = [[MBProgressHUD alloc] initWithView:self.view];在这两种情况下,我没有错误,但没有出现。如何使用你给我的初始化? – Keviin55

+0

我必须做这个 HUD = [[MBProgressHUD alloc] initWithView:self.view]; [self.view addSubview:HUD]; – Keviin55

+0

很高兴听到您发现您的问题!感恩节快乐,如果你在美国! – DanZimm