最近在使用React Native(以下简称RN)中踩了个坑,RN只能异步调用原生方法,所以在原生方法直接调用UI刷新操作需要将任务递交到主线程才可以。
RCT_EXPORT_METHOD(finish)
{
UIViewController *cVC = [UIViewController getTopViewController];
[cVC.navigationController popViewControllerAnimated:YES];
}
调用的时候可以发现,线程并不是主线程。比如我这次是在thread 13
提交到主线程就可以
RCT_EXPORT_METHOD(finish)
{
dispatch_async(dispatch_get_main_queue(), ^{
UIViewController *cVC = [UIViewController CM_curViewController];
[cVC.navigationController popViewControllerAnimated:YES];
});
}