iOS在视图更改前显示“正在加载”消息

时间:2013-08-20 15:50:47

标签: ios objective-c loading

我对这个IOS目标C的东西很新,所以希望这很简单。

我有一个rightBarButtonItem,按下时使用push segue移动到下一个视图。但是,加载下一个视图需要一段时间,因为它涉及数据库调用。我希望按钮更改UILabel(或以其他方式更改UI)以显示一条消息,指示它正在工作。

我已尝试在prepareForSegue方法中执行操作,但这些更改仅在视图更改之前发生,如果有的话。

我应该如何完成我正在寻找的东西?感谢。

2 个答案:

答案 0 :(得分:9)

我建议你MBProgressHUD,这会提出一个很好的模态指标。它很容易实现。

看看这个github演示并使用到您的项目中。我还建议您使用Grand Central Dispatch (GCD)根据您的方法更好地执行来自后台数据库方法的流程加载数据: -

您的示例 ViewDidLoad 方法: -

[MBProgressHUD showHUDAddedTo:self.view animated:YES];  //Activity Indicator loading

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

           [self LoadDatabae]; //database data fatch method

            dispatch_async(dispatch_get_main_queue(), ^{

                [MBProgressHUD hideHUDForView:self.view animated:YES]; //hide that after your Dela Loading finished fromDatabase
            });
        });

答案 1 :(得分:0)

您应该使用以下任何Secondviewcontroller方法显示加载器。(调用数据库的位置)。

- (void)viewWillAppear:(BOOL)animated

 - (void)viewDidAppear:(BOOL)animated

编辑:我正在打字以建议MBProgressHUD。感谢Nitin Gohel。