스토리 보드의 "ContainerView"를 사용해보십시오.
5544 단어 XcodeiOSStoryboard
ContainerView를 사용해보기
일부 Objects에는 "ContainerView"라는 것이 있습니다. 이것을 사용하면 ViewController에 ViewController를 포함시킬 수 있습니다.
4로 분할하여 다양한 ViewController를 끼웁니다.
실행하면 이런 느낌의 혼돈이됩니다.
각 컨트롤러는 제대로 독립적으로 움직입니다. 분할된 가운데 Tab의 전환이나 NavigationBar의 push가 동작하고 있습니다.
ContainerView는 무엇입니까?
Storyboard에 붙여넣을 수 있는 Object는, 통상 어떠한 클래스가 대응하고 있습니다만, ContainerView는 다른 것 같습니다.
실태로서는 UIView입니다만, Storyboard상에서 특별한 동작을 하고 있는 것 같습니다.
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
for (id c in self.childViewControllers) {
NSLog( @"c=%@",c);
}
for( UIView *v in self.view.subviews){
NSLog(@"v=%@",v);
for( UIView *v2 in v.subviews){
NSLog(@"v2=%@",v2);
}
}
}
이렇게 쓰면 ↓와 같은 결과가 되었습니다.
2013-08-05 23:14:06.073 20130805_2[11443:c07] c=<UINavigationController: 0x75e00e0>
2013-08-05 23:14:06.075 20130805_2[11443:c07] c=<UITabBarController: 0x75e45f0>
2013-08-05 23:14:06.077 20130805_2[11443:c07] c=<UITableViewController: 0x75e9fe0>
2013-08-05 23:14:06.078 20130805_2[11443:c07] c=<UICollectionViewController: 0x75ef510>
2013-08-05 23:14:06.081 20130805_2[11443:c07] v=<UIView: 0x75df4a0; frame = (0 0; 160 230); autoresize = W+H+BM; layer = <CALayer: 0x75de650>>
2013-08-05 23:14:06.081 20130805_2[11443:c07] v2=<UILayoutContainerView: 0x75e2b10; frame = (0 0; 160 230); autoresize = W+H; layer = <CALayer: 0x75e2bb0>>
2013-08-05 23:14:06.082 20130805_2[11443:c07] v=<UIView: 0x75df6d0; frame = (160 0; 177 230); autoresize = W+H+BM; layer = <CALayer: 0x75df730>>
2013-08-05 23:14:06.083 20130805_2[11443:c07] v2=<UILayoutContainerView: 0x75e4580; frame = (0 0; 177 230); autoresize = W+H; layer = <CALayer: 0x75e64e0>>
2013-08-05 23:14:06.084 20130805_2[11443:c07] v=<UIView: 0x75df760; frame = (0 230; 160 230); autoresize = W+TM+H; layer = <CALayer: 0x75df900>>
2013-08-05 23:14:06.084 20130805_2[11443:c07] v2=<UITableView: 0x834d600; frame = (0 0; 160 230); clipsToBounds = YES; opaque = NO; autoresize = W+H; gestureRecognizers = <NSArray: 0x75edd60>; layer = <CALayer: 0x75ed820>; contentOffset: {0, 0}>
2013-08-05 23:14:06.085 20130805_2[11443:c07] v=<UIView: 0x75df950; frame = (160 230; 160 230); autoresize = W+TM+H; layer = <CALayer: 0x75df9b0>>
2013-08-05 23:14:06.086 20130805_2[11443:c07] v2=<UIView: 0x75eeaa0; frame = (0 0; 160 230); autoresize = W+H; layer = <CALayer: 0x75ed570>>
ContainerView는 몇시에 사용하면 좋습니까?
Storyboard를 사용하여 ViewController 안에 ViewController를 끼우고 싶을 때 등에 어떨까요? UIPageViewController를 사용해 「화면의 일부만」페이지 넘기는 경우등에, 이것을 사용하면 좋은 느낌으로 할 수 있는 것이 아닐까 생각합니다.
Reference
이 문제에 관하여(스토리 보드의 "ContainerView"를 사용해보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/paming/items/d8a29d644c994ce60d6a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)