나는 여러 탭보기 항목이있는 NSTabView
입니다. 사용자가 특정 버튼을 클릭하면 탭 뷰가 이러한 항목 중 하나로 변경되어 웹 사이트 API에서 반환 된 항목을 표시합니다. 중간 탭보기 항목을 만들어 사용자에게 데이터를 가져 오는 중임을 알려주고 한 번 가져 오면 데이터가 표시됩니다.한 가지 방법으로 nstabview 항목을 두 번 변경하십시오.
[tabView selectTabViewItemAtIndex:0]; // This is the intermediate tab
/*
Fetching
data from
the api
here
*/
[tabView selectTabViewItemAtIndex:1]; // Displaying the data tab
그러나 첫 번째 탭은 표시되지 않으며 마지막 탭은 표시되지 않습니다. 나는 데이터를 매우 빨리 가져 왔고 그것을 보여줄 시간이 없는지 궁금해했지만 중단 점을 중간에 설정했지만 여전히 변경되지 않았습니다. 그것은 결국 바뀌었을 것입니다, 이상한.
아이디어가 있으십니까?
업데이트 :
[tabView selectTabViewItemAtIndex:0]; // This is the intermediate tab
dispatch_queue_t queue = dispatch_queue_create("com.mycompany.queue", 0);
dispatch_async(queue, ^{
/*
Fetching
data from
the api
here
*/
[tabView selectTabViewItemAtIndex:1]; // Displaying the data tab
});
UI는 런 루프 사이에서만 업데이트되므로 중간 탭을 선택하고 비동기 적으로 페치를 수행 한 다음 페치가 완료되면 다음 탭을 선택해야합니다. –