2

私のアプリケーションでは、UINavigationController内部UITabBar にHUDを表示すると、を除いて画面全体がロックされTabBarます。したがって、HUDを閉じる唯一の方法は、タブをタップすることです。また、私の「戻る」ボタンをタップしたときにそれを閉じたいと思います。これNavigationController が私のコードです。

hud = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
[self.navigationController.view addSubview:hud];
hud.delegate = self;
hud.labelText = @"Loading...";
[hud show:YES];
4

3 に答える 3

4

ナビゲーション コントローラーに hud ビューを追加しているため、ナビゲーション バーを操作できません。

あなたが達成したいのはself.navigationController.topViewController.view、私が思うに、あなたの場合は 経由でアクセスできるものをロックすることですself.view

次のことを試してください。

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

上記がうまくいったかどうかお知らせください。そうでない場合は、解決策を見つけるために答えを改善します。

于 2012-08-27T09:40:23.213 に答える
1

Hud は userIntrction を無効にします...そのため、ユーザーは hud が追加されている領域に触れることができません...そのため、追加したい場所に hud を追加するだけです...ただし、HUD が使用されているときに UI の変更がないことを確認してくださいHUD がセカンダリ スレッドで実行され、セカンダリ スレッドでの変更によりアプリがクラッシュするため、実行中です....

    HUD = [[MBProgressHUD alloc] initWithView:self.view];
    HUD.graceTime = .1;
    HUD.labelFont  = [UIFont fontWithName:@"Arial" size:16];
    HUD.labelText = @"Loading..";
    HUD.delegate = self;
    [self.view addSubview:HUD];
    [HUD showWhileExecuting:@selector(loginJsonParsing) onTarget:self withObject:nil animated:YES];
于 2012-08-27T09:52:12.400 に答える