2012-04-25 6 views
2

제 프로젝트에서 여섯 번째 탭 표시 줄을 추가하고 싶습니다. 그 때 나는 더 많은 옵션을 얻고 있지만 더 많은 탭을 클릭 할 때 아무 일도 일어나지 않습니다. 이 솔루션과 다른 로직에 대해 나에게 훌륭한 솔루션을 제공하십시오.ios sdk에 5 개 이상의 탭 표시 줄을 추가 할 수 있습니까?

+1

, 관련 코드를 제공하십시오 당신의 대의원에게, 그렇지 않으면 무엇이 th를 일으키는 지 말하기는 꽤 불가능합니다. ... – sergio

+0

k. 제발 우리가 6 탭 표시 줄을 추가 할 수 있다고 말해주십시오 ...... – Nishi

+1

당신은 6 탭 이상을 가질 수 있지만,이 경우 아이콘이 4 개만 표시되고 다섯 번째 아이콘은 "더보기"입니다. .. "탭을 사용하면 나머지 탭에 대한 별도의 목록 컨트롤러로 연결됩니다. – sergio

답변

6

를 아이폰 OS 9 (그리고 아마도 8)로,이 작업을 수행 할 수있는 간단한 방법이있다. 이 트릭을 사용하여 앱을 선적하는 것은 좋지 않습니다. 여섯 개의 탭은 4 대 또는 5 대에 꽤 비좁습니다.하지만 알기 쉽습니다.

iPad 탭 막대에는 "추가"항목이 없어도 5 개 이상의 탭을 사용할 수 있습니다.

"태블릿인지 아닌지"를 결정하는 Apple의 새로운 방법? 크기 클래스가 있습니다.

그래서, 서브 클래스 UITabBarController 및 구현 :

-(UITraitCollection *)traitCollection 
{ 
    UITraitCollection 
    *realTraits = [super traitCollection], 
    *lieTrait = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassRegular]; 
    return [UITraitCollection traitCollectionWithTraitsFromCollections:@[realTraits, lieTrait]]; 
} 

는 여섯 아이 뷰 컨트롤러를 추가하고 짜잔! 이 경우 애플이 설교하는 것을 실천하는 것처럼 보입니다!

(* 탭의보기 컨트롤러에 대한 가로 크기 클래스에 관한 것임을 유의하십시오. 적절하게 setViewControllers:의 재정의를 사용하여 을 적절한 시간에 호출하여 특성 모음을 "재정의"할 수 있습니다 . 다시 진짜 하나 그 방법들은 혼란과 레이아웃의 부적절 다양한 변종을 표시하려고) SWIFT에서

+0

답변 자체가 완벽하게 작동하는 것 같습니다. 그러나 모든 경우에있는 것은 아닙니다. 예를 들어 AVPlayerViewController를 사용할 때 UITabBarController의 세로/가로 방향이 특히 엉망이되는 것으로 보입니다. –

4

, 서브 클래스 UITabBarController을하고 구현하지 않습니다.

override var traitCollection: UITraitCollection { 
    let realTraits = super.traitCollection 
    let lieTrait = UITraitCollection.init(horizontalSizeClass: .regular) 
    return UITraitCollection(traitsFrom: [realTraits, lieTrait]) 
} 
+0

감사합니다 ...... –

관련 문제