重叠子视图的最佳替代方案

时间:2012-09-13 18:03:24

标签: objective-c ios storyboard

我有一个包含登录表单的UIView,但是当用户已经登录时,我想显示一个注销按钮而不是表单。

我目前的方法是为登录表单和登录按钮创建一个子视图,在Interface Builder中相互重叠。

我会一次只显示一个子视图。

是否有更好的方法可以在Interface Builder中设计,同时仍然使用相同的UIViewController

如果重要,视图是模态视图。

2 个答案:

答案 0 :(得分:2)

你可以调整你的UIViewController实际上是UITabBarController,但调整标签栏,以便在控制器被推到屏幕时它不可见:

self.hidesBottomBarWhenPushed = YES;

这应该允许你:

  1. 以编程方式轻松切换视图
  2. 轻松管理IB中的两个(或多个)单独的UIViewController实例,而不重叠

答案 1 :(得分:0)

对于视图控制器的可选/模态部分,过去我曾多次使用的一种方法是为每个部分创建一个视图作为nib中的顶级对象。您可以更轻松地使用界面构建器排列每个视图,然后您需要在代码中执行的操作有条件地将适当的视图添加到viewDidLoad方法中的主视图中。请记住,作为笔尖中的顶级对象,它们应该具有强大的出口,而不是弱出口。