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

Objective c 重叠子视图的最佳替代方案,objective-c,ios,storyboard,Objective C,Ios,Storyboard,我有一个包含登录表单的ui视图,但是当用户已经登录时,我想显示一个注销按钮而不是表单 我目前的方法是为登录表单和登录按钮创建一个子视图,在Interface Builder中相互重叠 然后,我一次只显示一个子视图 是否有更好的方法来实现这一点,以便在仍然使用相同的UIViewController的情况下,在Interface Builder中更易于设计 如果重要的话,视图是模态视图。对于视图控制器的可选/模态部分,我过去多次使用的一种方法是为每个部分创建一个视图,作为nib中的顶级对象。您可以使

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

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

然后,我一次只显示一个子视图

是否有更好的方法来实现这一点,以便在仍然使用相同的
UIViewController
的情况下,在Interface Builder中更易于设计


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

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

您可以将
UIViewController
调整为实际的
UIAbbarController
,但调整选项卡栏,使其在将控制器推到屏幕时不可见:

self.hidesBottomBarWhenPushed=YES

这将允许您:

  • 以编程方式在视图之间轻松切换
  • 在IB中轻松管理两个(或多个)独立的UIViewController实例,而不会重叠

  • 当IB是顶级对象时,如何在IB中编辑/查看视图?与主视图相同。它们之间唯一的区别是主视图连接到视图控制器的
    视图
    出口。哦,在这种情况下,我建议您将它们放在单独的nib中,并从nib加载视图。同样的基本原理,您只需使用
    UINib
    加载它们。