我检查了很多这种方法的例子,但仍然无法弄清楚我在做什么有什么问题。我正在尝试在当前 View 下方添加另一个 View ,然后在用户单击当前屏幕上的按钮后删除我的当前 View 。由于某种原因, View 消失了,但我没有看到应该在它下面的 View 。我只是得到一个白屏。
这是我当前 View 的 ViewDidLoad(位于顶部的 View - 为示例起见,ViewControllerTop):
- (void)viewDidLoad
{
[super viewDidLoad];
viewControllerBottom = [[ViewControllerBottom alloc] init];
[self.view insertSubview:viewControllerBottom.view belowSubview:self.view];
}
在这个方法之后,有一个方法在用户点击按钮时触发:
- (IBAction)goToBottomView:(id)sender {
[self.view.superview removeFromSuperview];
}
有没有人看出这有什么问题?谢谢您的帮助!
顺便说一句 - 尽管这很愚蠢,但我也尝试使用 insertSubview:aboveSubview 但它也不起作用。
我认为您的代码存在根本性错误。你正在做:
[self.view insertSubview:viewControllerBottom.view belowSubview:self.view]
所以你在belowSubview:
参数中传递的 View 需要是self.view
的 subview ,而self.view
不是!
insertSubview:belowSubview:
如果您按预期将其与接收者对象的 subview 一起使用,它将正常工作。
Tôi là một lập trình viên xuất sắc, rất giỏi!