Iphone 使用xib更改视图

Iphone 使用xib更改视图,iphone,Iphone,我有一个在纵向视图中的xib和一个在横向视图中的xib。我轮流改变xib,如下所示: [[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@_landscape", NSStringFromClass([self class])] owner: self options: nil]; 它工作正常,但是如果我在当前视图中打开一个视图作为子视图,它就会消失。例如,在单击任何按钮时,我都会在当前视图中添加一个视图

我有一个在纵向视图中的xib和一个在横向视图中的xib。我轮流改变xib,如下所示:

[[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@_landscape", NSStringFromClass([self class])]
  owner: self
  options: nil];
它工作正常,但是如果我在当前视图中打开一个视图作为子视图,它就会消失。例如,在单击任何按钮时,我都会在当前视图中添加一个视图(如弹出框),但在“旋转”子视图中,它会消失。我如何解决这个问题


非常感谢您的帮助。

您需要为该视图创建属性,当您执行旋转时,您需要在其余视图的顶部重新添加相同的视图,只需使用
UIView
addSubview
功能,而不是更改不同模式的视图,使用自动调整大小。它可以让你在旋转时进行单视图自动调整大小。下面是一个你可以学习的好例子


我认为这不是一个好办法。您应该使用
XIB
使用一个
UIViewController
。现在,在
ViewController
视图外部拍摄两个视图(一个用于横向,另一个用于纵向),并在旋转时打开

yourCurrentView = landscapeView/portraitView;
 [self.view addSubview:yourCurrentView];
并将其设置为[self.view sendsubview toback:yourCurrentView]//因为曾经在self.view上动态添加的视图仍然位于顶部,现在添加的视图总是在每个模式下显示


我希望它能帮助你

我假设你没有添加旋转视图,这意味着正如你所说,你有两个不同的旋转视图,所以如果你添加任何其他视图作为子视图,你必须添加两个视图,一个用于景观,一个用于potrait。你这样做吗?