理解iOS中的视图层次结构
我熟悉UITabBarController和UINavigationController范例,在这些范例中,您可以为不同的选项卡显示一个新的视图控制器,或者推/弹出一个新的视图控制器。我不熟悉的是像Flipboard这样的应用程序。Flipboard将向我展示3个故事的预览。如果我点击其中一个故事,我看到的过渡基本上就是占据屏幕的故事。为了做到这一点,我想知道您设置了什么样的视图层次结构。我最初的直觉是把视图放在彼此的上面,然后隐藏和显示一个视图。我不喜欢这种方法的一点是它看起来很杂乱,特别是在IB中有很多元素相互重叠的情况下。有更好的方法吗?创建新的viewController并执行以下操作是否更好理解iOS中的视图层次结构,ios,uiviewcontroller,Ios,Uiviewcontroller,我熟悉UITabBarController和UINavigationController范例,在这些范例中,您可以为不同的选项卡显示一个新的视图控制器,或者推/弹出一个新的视图控制器。我不熟悉的是像Flipboard这样的应用程序。Flipboard将向我展示3个故事的预览。如果我点击其中一个故事,我看到的过渡基本上就是占据屏幕的故事。为了做到这一点,我想知道您设置了什么样的视图层次结构。我最初的直觉是把视图放在彼此的上面,然后隐藏和显示一个视图。我不喜欢这种方法的一点是它看起来很杂乱,特别是在
- (IBAction)showDetailView:(id)sender {
[self.view addSubview:detailController.view]; // have the detailController.view as an ivar so we can reference it later
}
- (IBAction)removeDetailView:(id)sender {
[detailControllerIvar.view removeFromSuperview];
}
抱歉,如果这是一个基本问题。我不太熟悉这样的情况:我不只是使用ViewController通过推/弹出、tab-press、show-modal等方式显示自己的视图。我不太熟悉addSubview,也不知道这是好还是坏的做法。谢谢 您希望使用从ViewController:到ViewController的转换。它负责添加/删除子视图。这里有一个例子
[self addChildViewController:toViewController];
[fromViewController willMoveToParentViewController:nil];
[self transitionFromViewController:fromViewController
toViewController:toViewController
duration:1.0f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{}
completion:^(BOOL completed){
[fromViewController removeFromParentViewController];
[toViewController didMoveToParentViewController:self];
}];