我对这个 IOS 目标 C 的东西很陌生,所以希望这是一个简单的。
我有一个 rightBarButtonItem 按下时使用 push segue 移动到下一个视图。但是,加载下一个视图需要一段时间,因为它涉及数据库调用。我希望该按钮更改 UILabel(或以其他方式更改 UI)以显示一条消息,表明它正在工作。
我已经尝试在 prepareForSegue 方法中做一些事情,但是这些更改只会在视图更改之前发生,如果有的话。
我应该如何完成我正在寻找的东西?谢谢。
我对这个 IOS 目标 C 的东西很陌生,所以希望这是一个简单的。
我有一个 rightBarButtonItem 按下时使用 push segue 移动到下一个视图。但是,加载下一个视图需要一段时间,因为它涉及数据库调用。我希望该按钮更改 UILabel(或以其他方式更改 UI)以显示一条消息,表明它正在工作。
我已经尝试在 prepareForSegue 方法中做一些事情,但是这些更改只会在视图更改之前发生,如果有的话。
我应该如何完成我正在寻找的东西?谢谢。
我建议您使用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
});
});
您应该在 Secondviewcontroller 的以下任何方法中显示加载程序。(调用数据库的位置)。
- (void)viewWillAppear:(BOOL)animated
或者
- (void)viewDidAppear:(BOOL)animated
编辑:我正在输入建议MBProgressHUD。感谢尼廷·戈赫尔。