iPad 커스텀 분할 뷰 컨트롤러 SMTabbedSplitViewController 구현 및 문제 해결

라이브러리 개요

SMTabbedSplitViewController는 iPad 환경에 최적화된 커스텀 분할 화면 컨트롤러로, 왼쪽에 수직 탭 바를 배치하여 주요 뷰 컨트롤러 간 네비게이션을 제공합니다. 탭 바에는 화면 전환 탭과 앱 종료 같은 액션 버튼을 함께 구성할 수 있으며, 탭 바 없이도 사용 가능한 유연한 UISplitViewController 대안입니다.

본 라이브러리는 Objective-C 기반으로 iOS 6.0 이상을 지원하며, 레거시 iPad 앱부터 최신 버전까지 폭넓게 활용할 수 있습니다.

의존성 설정 시 주의사항

CocoaPods 환경 구성 문제

프로젝트 통합 과정에서 CocoaPods 관련 설정 오류가 발생할 수 있습니다. 특히 Podfile 구성이나 워크스페이스 로드 단계에서 문제가 흔히 발생합니다.

해결 방법:

# 1. CocoaPods 설치 (시스템 Ruby 사용 시)
gem install cocoapods --user-install

# 2. 프로젝트 루트에서 Podfile 생성 및 편집
cat > Podfile <<EOF
platform :ios, '9.0'
use_frameworks!

target 'YourAppTarget' do
  pod 'SMTabbedSplitViewController', '~> 1.0.3'
end
EOF

# 3. 의존성 설치 및 저장소 업데이트
pod install --repo-update

# 4. .xcworkspace 파일을 Xcode로 실행
open YourApp.xcworkspace

탭 바 커스터마이징 구현 방법

탭 아이템 등록 및 스타일링 난관

초기 설정 시 탭 바에 뷰 컨트롤러를 연결하고 시각적 요소를 커스터마이징하는 방법을 이해하지 못해 구현이 지연되는 경우가 많습니다.

구현 절차:

// 1. 탭에 연결할 뷰 컨트롤러 준비
AnalyticsViewController *analyticsVC = [AnalyticsViewController new];
analyticsVC.view.backgroundColor = [UIColor colorWithRed:0.95 green:0.95 blue:0.97 alpha:1.0];

// 2. 탭 바 아이템 생성 (제목 + 이미지 설정)
SMTabBarItem *analyticsTabItem = [[SMTabBarItem alloc] 
    initWithViewController:analyticsVC 
                    title:@"분석" 
                    image:[UIImage imageNamed:@"chart_icon"]];

// 3. 분할 뷰 컨트롤러에 탭 추가
SMTabbedSplitViewController *splitController = [[SMTabbedSplitViewController alloc] init];
[splitController.tabBar addTabBarItem:analyticsTabItem];

// 4. 선택적: 액션 버튼 추가
UIBarButtonItem *logoutAction = [[UIBarButtonItem alloc] 
    initWithTitle:@"로그아웃" 
            style:UIBarButtonItemStylePlain 
           target:self 
           action:@selector(handleLogout)];
[splitController.tabBar addActionButton:logoutAction];

iOS 버전 호환성 대응 전략

타겟 iOS 버전별 라이브러리 버전 불일치

프로젝트의 최소 지원 iOS 버전과 라이브러리 요구사항이 맞지 않아 빌드 오류나 런타임 예외가 발생할 수 있습니다.

대응 방안:

# Podfile에서 iOS 버전에 맞는 라이브러리 지정

# iOS 8.0+ 지원이 필요한 경우
pod 'SMTabbedSplitViewController', '1.0.3'

# iOS 9.0+ 환경에서 안정성 확보
pod 'SMTabbedSplitViewController', '~> 1.0.4'

# 최신 기능이 필요한 iOS 10+ 프로젝트
pod 'SMTabbedSplitViewController', '>= 1.0.5'

# 불일치 해결을 위한 추가 설정
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
    end
  end
end

호환성 문제가 지속될 경우 GitHub 이슈 트래커에서 label:compatibility 태그로 필터링하여 관련 해결책을 검색하거나 새 이슈를 등록하시기 바랍니다.

태그: Objective-C iOS UISplitViewController CocoaPods iPad개발

9월 6일 19:28에 게시됨