1

我从 MBProgressHUD 调用我的 rss 解析器,目前它在 viewdidappear 中并且它可以工作,但是我希望它在 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];


    }

有任何想法吗?

谢谢,汤姆

4

2 回答 2

2

在 viewDidLoad 方法中,self.view 将在没有其父视图和窗口的情况下被加载。例如 self.view.superview 将在 viewWillAppear 方法中加载,然后 self.view.window 将在 viewDidAppear 方法中加载。这就是为什么 [self.view.window addSubview:HUD] 不会在 viewDidLoad 中发生,但 [self.view addSubview:HUD] 有效的原因。

于 2013-05-30T09:29:38.950 回答
0

试试下面的代码,它在我的最后工作正常。

- (void)viewDidLoad {
    [super viewDidLoad];    
    HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    HUD.labelText = @"Loading";
    HUD.detailsLabelText = @"updating data";    
}
于 2011-10-04T11:05:32.803 回答