我对这个IOS目标C的东西很新,所以希望这很简单。
我有一个rightBarButtonItem,按下时使用push segue移动到下一个视图。但是,加载下一个视图需要一段时间,因为它涉及数据库调用。我希望按钮更改UILabel(或以其他方式更改UI)以显示一条消息,指示它正在工作。
我已尝试在prepareForSegue方法中执行操作,但这些更改仅在视图更改之前发生,如果有的话。
我应该如何完成我正在寻找的东西?感谢。
答案 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。