UITabBarController에서 전환 대상의 스토리 보드를 분할하는 방법
다만, 1개의 Storyboard에 모든 천이를 넣어 버리면, Storyboard가 비대화해 버립니다.
너무 큰 스토리보드를 로드하면 최악의 XCode가 떨어져 버려서 아무것도 되지 않는다.
라고 하는 일도 일어나 버린다고 합니다.
그래서 소중한 것이 스토리 보드를 분할하는 것입니다만,
분할 방법에 관해서는 조사하면 대량으로 나오므로 여기에서는 할애합니다.
이번에 자신이 부딪힌 것은 스토리 보드 분할하고, 그것을 UITabBarController
에서 사용하는 것입니다.
그 방법을 자신에게의 비망록도 포함해 정리합니다.
UITabBarController에서의 분할 방법도 조사하면 상당히 나옵니다만
1.UITabBarController 배치
소개 UITabBarController를 배치합니다.
툴바에서 검색하면 나오므로 적당히 배치하면 괜찮습니다.
초기 상태라면 이런 느낌이 될까 생각합니다.
Storyboard를 분할하지 않는다면 여기에 전환을 연결하면 좋지만,
이번에는 분할하는 것이 목적이므로 코드를 작성합니다.
2.UITabBarController 코드 작성
UITabBarController에 붙이는 코드를 써 갑니다.
이번에 자신이 구현한 것은,
탭을 눌렀을 때의 Viewcontoller를 교환하는 형태가 됩니다.
코드는 다음과 같습니다.
SplitStoryBoardTabController.h#import <UIKit/UIKit.h>
@interface SplitStoryBoardTabController : UITabBarController
@end
SplitStoryBoardTabController.m#import <UIKit/UIKit.h>
#import "SplitStoryBoardTabController.h"
@implementation SplitStoryBoardTabController
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableArray* viewControllers = [self.viewControllers mutableCopy];
NSUInteger size = viewControllers.count;
for( NSUInteger i=0; i<size; ++i )
{
UIViewController* viewController = viewControllers[i];
@try {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:viewController.title bundle:nil];
// ここで表示したい ViewController を指定する
UIViewController* setViewController;
setViewController = [storyboard instantiateInitialViewController];
viewControllers[i] = setViewController;
}
@catch (NSException *exception) {
NSLog(@"Err : %@", exception.name);
}
}
self.viewControllers = viewControllers;
}
@end
UITabBarController는 탭을 누를 때 전환 대상을 viewControllers라고합니다.
속성에 보유하고 있습니다.
이것을 바꾸어 전환 대상을 분할 한 스토리 보드의 ViewController로
전환을 실현합니다.
또한 스토리 보드 파일 이름은 탭 컨트롤러에 대한 ViewController의
Title에서 얻으려고했습니다.
이 클래스를 방금 설치한 UITabBarController로 설정합니다.
3.Storyboard의 타이틀을 설정
마지막으로 ViewController의 Title을 설정하고로드
Storyboard를 지정합니다.
이런 느낌으로 설정해 주면, 탭의 천이처가 지정의 Storyboard의 Is Initial이 붙어 있다
ViewContorller가 됩니다.
이상이 됩니다.
Reference
이 문제에 관하여(UITabBarController에서 전환 대상의 스토리 보드를 분할하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Thiru0000/items/4dedb6c732ebb9e704c2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
UITabBarController에 붙이는 코드를 써 갑니다.
이번에 자신이 구현한 것은,
탭을 눌렀을 때의 Viewcontoller를 교환하는 형태가 됩니다.
코드는 다음과 같습니다.
SplitStoryBoardTabController.h
#import <UIKit/UIKit.h>
@interface SplitStoryBoardTabController : UITabBarController
@end
SplitStoryBoardTabController.m
#import <UIKit/UIKit.h>
#import "SplitStoryBoardTabController.h"
@implementation SplitStoryBoardTabController
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableArray* viewControllers = [self.viewControllers mutableCopy];
NSUInteger size = viewControllers.count;
for( NSUInteger i=0; i<size; ++i )
{
UIViewController* viewController = viewControllers[i];
@try {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:viewController.title bundle:nil];
// ここで表示したい ViewController を指定する
UIViewController* setViewController;
setViewController = [storyboard instantiateInitialViewController];
viewControllers[i] = setViewController;
}
@catch (NSException *exception) {
NSLog(@"Err : %@", exception.name);
}
}
self.viewControllers = viewControllers;
}
@end
UITabBarController는 탭을 누를 때 전환 대상을 viewControllers라고합니다.
속성에 보유하고 있습니다.
이것을 바꾸어 전환 대상을 분할 한 스토리 보드의 ViewController로
전환을 실현합니다.
또한 스토리 보드 파일 이름은 탭 컨트롤러에 대한 ViewController의
Title에서 얻으려고했습니다.
이 클래스를 방금 설치한 UITabBarController로 설정합니다.
3.Storyboard의 타이틀을 설정
마지막으로 ViewController의 Title을 설정하고로드
Storyboard를 지정합니다.
이런 느낌으로 설정해 주면, 탭의 천이처가 지정의 Storyboard의 Is Initial이 붙어 있다
ViewContorller가 됩니다.
이상이 됩니다.
Reference
이 문제에 관하여(UITabBarController에서 전환 대상의 스토리 보드를 분할하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Thiru0000/items/4dedb6c732ebb9e704c2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(UITabBarController에서 전환 대상의 스토리 보드를 분할하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Thiru0000/items/4dedb6c732ebb9e704c2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)