在TabBar中点击选项卡时显示AlertView

时间:2014-05-20 12:42:50

标签: ios uialertview uitabbar

我需要什么

当我点击tabBar中的标签页时,我想显示UIAlertView“正在加载...”。

我想这样做的原因

这是因为该特定标签包含UIWebView并且非常慢,所以当我点击该标签时,我的应用似乎几秒钟内完全没有任何作用。这非常难看,所以我想展示一些东西让用户知道应用程序实际上正在运行。

问题

我必须把它放在哪个位置?如果我在ViewDidLoad中编写它,则会在那几秒钟之后显示AlertView。 AlertView是最佳选择吗?

谢谢大家。

3 个答案:

答案 0 :(得分:1)

MBProgressHUD添加到UIWebView viewDidLoad方法

- (void)viewDidLoad {
    [super viewDidLoad];
    self.webView.delegate = self;
    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    hud.labelText = @"Loading...";
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
      [hud hide:YES];
}

答案 1 :(得分:1)

UIAlerView不是个好主意。

//Delegate method of UIWebView
- (void)webViewDidStartLoad:(UIWebView *)webView 
{
    if(![[UIApplication sharedApplication] isNetworkActivityIndicatorVisible])
    {
        [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
    }
}

//Delegate method of UIWebView
- (void)webViewDidFinishLoad:(UIWebView *)webView_ 
{
    if([[UIApplication sharedApplication] isNetworkActivityIndicatorVisible])
    {
        [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
    }
}

答案 2 :(得分:0)

tabBar

上将delegate设为viewDidLoad
- (void)viewDidLoad
{
    [super viewDidLoad];

    //Setting tabBarController as a delegate
    self.tabBarController.delegate = self;
}

在您的界面.h方法添加委托<UITabBarControllerDelegate>

每次按tabBar时,实现此功能并添加加载视图。当用户点击tabbar上的项目时,总会执行以下方法。

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
    {
        //Show loading form here
        [MBProgressHUD showHUDAddedTo:self.view animated:YES];
        dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
            // Do something...
            dispatch_async(dispatch_get_main_queue(), ^{
                [MBProgressHUD hideHUDForView:self.view animated:YES];
            });
        });
    }

P.S你需要添加这个方法并设置委托给你需要显示警报视图的每个viewController(加载视图)

对于加载视图,您还可以加载使用MBProgressHUD,如KingBabar指出的那样。它有很棒的功能。