我熟悉UITabBarController和UINavigationController范例,您可以在其中为不同的选项卡提供新的视图控制器,或者推/弹出新的视图控制器。我不熟悉的是像Flipboard这样的应用程序。 Flipboard将向我展示3个故事的预览。如果我点击其中一个故事,我看到的过渡基本上就是占据屏幕的故事。为了做这样的事情,我想知道你设置了什么样的视图层次结构。我最初的直觉是将视图放在彼此之上,然后隐藏并显示一个视图。我不喜欢这种方法的事情似乎很混乱,特别是如果很多元素在IB中相互叠加。有没有更好的办法?是否更好地创建一个新的viewController并执行类似
的操作- (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通过推送/弹出,标签按下,显示模式等来显示自己的视图的情况.addSubview我不是很熟悉并且没有不知道这是好事还是坏事。谢谢!
答案 0 :(得分:1)
您想要使用transitionFromViewController:toViewController
。它负责添加/删除子视图。这是一个例子......
[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];
}];