我正在编写一个ios应用程序,它有多个UIView控制器。它们都有UITableViews,这些UITableViews充满了从不同的API获取的数据。但我面临的问题是,当我点击一个单元格时,该应用程序不会导航到下一页,直到获取该页面的数据。这使应用程序看起来,强大的慢。我需要一些方法来导航到下一页,我可以在其中放置一些微调动画,让用户知道它正在获取数据(至少)。我不希望用户认为应用程序已崩溃,或某些东西(它在固定的7-10秒内保持在同一页面中) 提前致谢
答案 0 :(得分:0)
我对此问题的解决方法是,您可以使用调度队列调用API,这样就不会影响其他功能。
答案 1 :(得分:0)
你应该在后台调用所有api,这样它就不会影响主线程,在后台队列中使用队列来调用api。
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
dispatch_async(queue, ^{
//call apis here
});
答案 2 :(得分:0)
请按照以下简单步骤进行操作
ViewController1 = VC1
ViewController1 = VC2
VC1中的
[self.navigationController pushViewController:VC2 animated:YES];
VC2中的
@implementation {
BOOL hasData;
}
-(void)viewDidLoad {
hasData = NO;
[self getAndShowData];
}
-(void)getAndShowData {
// Start Showing Spinner
// load your data from server and
// on success
1.) hasData = YES;
2.) Call reload tableview
// Remove spinner
}
- (NSInteger)numberOfRowsInSection:(NSInteger)section {
if(hasData == NO) return 0;
return actual number of rows.
}
}