1

データをロードするときに使用MBProgressHUDし、ユーザーはプロセス中に別のタブ ボタンを押すことができます。MBProgressHUDビューの内容のみを無効にします。他の投稿を確認しましたが、タブ ボタンを無効にするのに役立つものは何もありませんでした。

に設定しようとしtabbaritem.userInteractionEnabledましNOたが、それにアクセスする方法が見つかりませんでした。ストーリーボードではできますが、元に戻すことはできませんYES

私の質問は; 私のviewControllerからアクセスする方法はありますtabbarcontroller.tabbaritem.userInteractionEnabledか?

4

2 に答える 2

1

私はカテゴリを使用します:

UIViewController+MBProgressHUD.h

#import <UIKit/UIKit.h>

@class MBProgressHUD;

@interface UIViewController (MBProgressHUD)

- (MBProgressHUD *)showHUD;
- (MBProgressHUD *)showHUDFromTitle:(NSString *)title;
- (MBProgressHUD *)showHUDFromTitle:(NSString *)title completedImage:(BOOL)completedImage;
- (void)hideHUD;

@end

そしてUIViewController+MBProgressHUD.m

#import "UIViewController+MBProgressHUD.h"
#import <MBProgressHUD/MBProgressHUD.h>

@implementation UIViewController (MBProgressHUD)

- (MBProgressHUD *)showHUDFromTitle:(NSString *)title {
    UIView *view;
    if (self.tabBarController.view != nil) {
        view = self.tabBarController.view;
    } else if (self.navigationController.view != nil) {
        view = self.navigationController.view;
    } else {
        view = self.view;
    }
    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:NO];
    hud.labelText = title;
    return hud;
}

- (MBProgressHUD *)showHUD {
    return [self showHUDFromTitle:NSLocalizedString(@"Loading", @"Loading")];
}

- (MBProgressHUD *)showHUDFromTitle:(NSString *)title completedImage:(BOOL)completedImage {
    MBProgressHUD *hud = [self showHUDFromTitle:title];
    if (completedImage) {
        UIImage *checkmarkImage = [UIImage imageNamed:@"37x-Checkmark"];
        UIImageView *checkmarkImageView = [[UIImageView alloc] initWithImage:checkmarkImage];
        hud.customView = checkmarkImageView;
        hud.mode = MBProgressHUDModeCustomView;
    } else {
        hud.mode = MBProgressHUDModeText;
    }
    return hud;
}

- (void)hideHUD {
    [MBProgressHUD hideAllHUDsForView:self.tabBarController.view animated:NO];
    [MBProgressHUD hideAllHUDsForView:self.navigationController.view animated:NO];
    [MBProgressHUD hideAllHUDsForView:self.view animated:NO];
}

例:

[self showHUD];
[self hideHUD];
于 2014-05-14T09:47:44.633 に答える
0

これは簡単な方法です

 [[[self tabBarController] tabBar] setUserInteractionEnabled:NO];

このリンクに記載されているように: ビューの読み込み時にタブバー アクションを非表示にするにはどうすればよいですか?

MBProgressHUD との相性抜群

于 2013-06-29T21:10:23.993 に答える