使用xib更改视图

时间:2013-06-05 05:25:58

标签: iphone

我在纵向视图中有一个xib,在横向视图中有一个xib。我正在改变旋转xib,如下所示:

[[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@_landscape", NSStringFromClass([self class])]
  owner: self
  options: nil];

它工作正常但是如果我在当前视图中打开一个视图作为子视图,那么它就会消失。例如,在任何按钮单击时,我在当前视图中添加一个视图(如弹出窗口),但在旋转子视图中它会消失。我该如何解决这个问题?

感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

您需要为该视图设置属性,并且无论何时执行旋转,只需使用addSubview的{​​{1}}函数,您需要在其余视图的顶部重新添加相同的视图。

答案 1 :(得分:0)

不是改变不同模式的视图,而是使用autoresizing.It将让你在旋转时处理单视图autoResize。这是你可以学习的好例子。

AutoResizing

答案 2 :(得分:0)

我认为这不是一个好方法。您应该使用UIViewController一个XIB。现在,在outlets的视图之外,以及在轮换时间看两个视图(一个用于横向,另一个用于纵向连接ViewController

yourCurrentView = landscapeView/portraitView;
 [self.view addSubview:yourCurrentView];

并将其设置为[self.view sendSubviewToBack:yourCurrentView]; //因为在self.view上动态添加的视图仍然位于顶部,现在添加的视图始终显示在每个模式中。

我希望它会对你有所帮助。