Objective c 如何用另一个UIView替换self(UIView)?

Objective c 如何用另一个UIView替换self(UIView)?,objective-c,uiview,Objective C,Uiview,视图A有一个按钮单击它,我们转到视图B 视图B不保留指向视图a的指针 从视图B中,我希望加载视图A(以编程方式) 实际上,我想杀死B,用A代替它 我原以为下面的方法应该行得通,但事实并非如此 从视图B调用 ViewController *main = [ViewController new]; [self addSubview:[main view]]; 请问我缺少什么?就我个人而言,我认为最简单的方法是让UIViewController和IBOutlet同时连接两个UIView对

视图A有一个按钮单击它,我们转到视图B

  • 视图B不保留指向视图a的指针
  • 从视图B中,我希望加载视图A(以编程方式)
实际上,我想杀死B,用A代替它

我原以为下面的方法应该行得通,但事实并非如此

从视图B调用

ViewController *main = [ViewController new];    
[self addSubview:[main view]];

请问我缺少什么?

就我个人而言,我认为最简单的方法是让
UIViewController
IBOutlet
同时连接两个
UIView
对象。您可以在interface builder中添加和设计它们,只需将其中一个(视图B)设置为隐藏(它是
UIView
中的一个属性)。 然后,可以指定按钮操作来切换视图B的可见性

我必须补充的是,有一些用于实现屏幕流的结构,例如
NavigationController
。但是,在您的情况下,您也可以考虑使用<代码> PrimeMutalVIEW控制器:动画:方法。 这完全取决于实际情况,但一般来说,最好为应用程序中的每个
UIView
创建一个单独的
UIViewController


希望这有帮助

这听起来像是在找导航控制器。如果不需要,您可以轻松地删除导航控制器导航栏和动画,但这将完全满足您的要求。

没错。假设我使用的是Xcode4.2和Segues,那该怎么做呢?我不太喜欢Segues和故事板,但想法还是一样的。将两个视图添加到场景(左侧)中的viewcontroller中,并将其中一个视为隐藏。我想在你的情况下,你甚至不需要分段。当然,除非你接受我的建议,把你的两个视图分割成两个视图控制器。然后,要从另一个视图(如视图a)以模式显示视图(如视图B),可以添加一个按钮以查看a,然后按住ctrl键并拖动到另一个viewController。在发布时,它会询问您希望使用哪种过渡。选择模态以将视图B作为模态视图显示。谢谢。我要试一试