이 작동하는 이유는 어떤 생각 :의 UITabBar 배지 설정
[[[[[self tabBarController] tabBar] items] objectAtIndex:2]
setBadgeValue:@"Hello"];
을하지만이하지 않는?
[[self tabBarItem] setBadgeValue:@"Hello"];
차라리 (위의 코드 2) 명시 적 탭 표시 줄 인덱스를 제공 할 필요가 없습니다 것입니다. 또한 첫 번째 스 니펫이이 작업을 수행하는 유일한 방법 인 경우보기 컨트롤러에서 탭 막대 인덱스를 가져 오는 방법이 있습니까?
감사합니다.
조금 더 명확히 해 주시겠습니까? IB의 탭 막대에보기 컨트롤러를 추가하면보기 컨트롤러의 tabbaritem이 자동으로 설정된다는 인상하에있었습니다. 변수 tabBarItem은 확실히 nil이 아니며 올바른 제목을 갖지만 tabBar items 배열을 통해 액세스 된 것과 동일한 주소가 아닙니다. –
그냥 애플의 문서에서 발견 : "탭 막대 항목은 해당보기 컨트롤러를 통해 구성됩니다. 탭 막대 항목을보기 컨트롤러와 연결하려면 UITabBarItem 클래스의 새 인스턴스를 만들고보기 컨트롤러에 맞게 적절히 구성한 다음 보기 컨트롤러의 tabBarItem 속성에 할당하십시오. 사용자보기 탭 컨트롤러에 대한 사용자 지정 탭 막대 항목을 제공하지 않으면보기 컨트롤러는 이미지 및보기 컨트롤러의 제목 속성에서 텍스트를 포함하는 기본 항목을 만듭니다. 인덱스를 작성하는 것보다는 배열을 통해 배열에 액세스하려고한다고 생각하십시오. –
아, 내가 지금하고있는 것을 보았다. 예를 들어 당신이 제공 한 예제가 작동해야하는 것처럼 보인다 ... 어떤 생각이들 수도있다. 일단 viewController를 tababrcontroller에 할당하면 tabbaritem을 캡처 한 다음 나중에 viewController tabBarItem tabBarViewController가 업데이트를 확인하지 않기 때문에 버튼이 업데이트되지 않습니다. – Daniel