0

我熟悉 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 来通过推送/弹出、tab 按下、显示模式等来显示它自己的视图的情况。我不太熟悉的 addSubview 并没有'不知道这是好的还是坏的做法。谢谢!

4

1 回答 1

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];
                        }];
于 2012-12-04T04:50:13.507 回答