ios - insertSubview :belowSubview doesnt work 的简单案例

标签 ios iphone objective-c uiview uiviewcontroller

我检查了很多这种方法的例子,但仍然无法弄清楚我在做什么有什么问题。我正在尝试在当前 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 一起使用,它将正常工作。

关于ios - insertSubview :belowSubview doesnt work 的简单案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837828/

相关文章:

ios - Swift:沿 touchesMoved 路径创建多个 UIImageView 副本

ios - 读取核心数据时出错 : ios swift

ios - 我可以制作一个 XIB/NIB 以在通用应用程序中跨 iPhone 和 iPad UI 共享吗?

ios - 为什么 UIImageToMat 在被调用时忽略了第三个参数?

iphone - CATextLayer 的动画截断

ios - 向 iOS 中的 sqlite 数据库中插入一个可能为空的值

javascript - 在iPhone的同一HTML页面上同时播放多个<audio>标签

iphone - iOS 的温度

iphone - 让 iOS 签名的应用程序在越狱设备上执行未签名的应用程序

objective-c - 为什么 Restkit 无法正确解析?