tabBarController selectedIndex를 사용하여 탐색 표시 줄을 표시할지 결정했습니다. 오늘 대부분의 항목에서 모든 것이 정상적으로 작동했지만 이제 다음 코드 줄이 나타납니다.한 번의 클릭으로 UITabBarController selectedIndex가 지연됩니다.
self.tabBarController.selectedIndex
은 현재 선택된 색인 대신 마지막으로 선택된 색인을 제공합니다. 이 코드 줄을 viewWillAppear에서 실행하여 tabBarController의 인덱스 1이있는 특정 뷰가 첫 번째 뷰에서 해당 탐색 모음을 표시하지 않도록합니다.
그러나 1 클릭 뒤를보고합니다. 예를 들어, 두 번째 인덱스를 클릭 한 다음 첫 번째 인덱스를 클릭하면 인덱스 1이있는 뷰 컨트롤러를 방금 클릭했지만 마지막 클릭이 인덱스 컨트롤러에서 인덱스 컨트롤러 2를 선택한 것으로 표시됩니다. 또한 selectedIndex는 항상 모든 뷰 컨트롤러를 처음 클릭 할 때 제대로 나열되지만 처음에는 tabBarController를 통해 보았을 때 수정되지 않습니다.
tabBarController 클래스 참조를 살펴 봤지만이 selectedIndex 속성은 간단해야합니다. 내가 뭘 놓치고 있니?
dispatch_once 또는 무언가를 사용하거나 tabbar 대리자를 사용하십시오. – Andy
@Andy는 귀하의 의견을 보내 주지만 다른 tabBar 인덱스를 통해보기 컨트롤러를 재사용하기 때문에 dispatch_once가 작동하지 않습니다. tabbar 대리자를 살펴 봤지만이 selectedIndex 지연을 수정하는 방법/이유가 표시되지 않습니다. 당신은 명확히 할 수 있습니까? –
"다른 TabBar 인덱스간에 뷰 컨트롤러를 재사용하고 있습니까?" 컨트롤러 설정을 설명하십시오. – rdelmar