按下按钮时交换视图内容

时间:2015-12-08 12:24:25

标签: ios

我的应用程序中的一个页面有一个按钮,用户可以在两个模式之间切换。页面的内容应根据所选的模式而有所不同。在这种情况下,推送另一个视图控制器是不正确的 - 新的UI组件应该位于同一页面上。

但是,我还没有发现如何在iOS中完成此操作。我已经看到容器视图(我无法在屏幕上显示)似乎有其他目的(可重用性)。我想我也可以手动隐藏/显示每个UI组件,具体取决于模式,但我想知道是否有更有效的方法(如在汇编视图中包装内容并隐藏/仅显示该内容)。

顺便说一下,我正在寻找尽可能使用Storyboard(或XIB)的解决方案。

2 个答案:

答案 0 :(得分:1)

为所有不同的视图创建视图控制器,在需要时从故事板中获取它们(按下按钮后),将它们作为子项添加到主视图控制器addChildViewController并将其视图添加到主视图中。您可以使用UIView animateWithDuration以任意方式设置转换动画。

完成视图/视图控制器后,删除视图并使用removeFromParentViewController从父视图中删除视图控制器。

答案 1 :(得分:1)

创建视图控制器,当用户单击按钮更改模式时,使用视图控制器的翻转而不是推视图控制器。下面是可以用来代替push

的代码
 UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
 UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"idVC"];

 vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
 [self presentViewController:vc animated:YES completion:nil];  

这将翻转视图控制器,此外,您可以关闭此视图控制器并继续正常的应用程序流程。