从ViewDidLoad调用MBProgressHUD

时间:2011-10-04 10:53:13

标签: iphone objective-c mbprogresshud

我从MBProgressHUD调用我的rss解析器,此时它在viewdid中显示并且它可以工作,但是我想在viewdidload中使用它所以当我返回时它不会重新加载它 - 但是当我将它移动到viewdidload时它会运行过程但不是MBProgressHUD。

- (void)viewDidLoad {
    [super viewDidLoad];

        self.title = @"Results";

    HUD = [[MBProgressHUD alloc] initWithWindow:[UIApplication sharedApplication].keyWindow];


    [self.view.window addSubview:HUD];
    HUD.delegate = self;

    HUD.labelText = @"Loading";
    HUD.detailsLabelText = @"updating data";

    //Show the HUD while the provided method executes in a new thread
    [HUD showWhileExecuting:@selector(loadResults) onTarget:self withObject:nil animated:YES];


    }

有什么想法吗?

谢谢,汤姆

2 个答案:

答案 0 :(得分:2)

在viewDidLoad方法中,将加载self.view而不使用其superview和window。例如,self.view.superview将在viewWillAppear方法中加载,然后self.view.window将在viewDidAppear方法中加载。这就是为什么[self.view.window addSubview:HUD]不会在viewDidLoad中发生,但[self.view addSubview:HUD]可以正常工作。

答案 1 :(得分:0)

尝试以下代码,我的工作正常。

- (void)viewDidLoad {
    [super viewDidLoad];    
    HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    HUD.labelText = @"Loading";
    HUD.detailsLabelText = @"updating data";    
}