添加子视图不起作用?

Posted

技术标签:

【中文标题】添加子视图不起作用?【英文标题】:Add subview not working? 【发布时间】:2011-06-21 21:40:08 【问题描述】:

我有两个 xib 文件:

MainView.xib 和 DetailView.xib

两者都由 MainViewController 控制。 MainView.xib 在应用首次打开时加载,但如果用户单击按钮,应用会将 DetailView.xib 作为子视图加载。

DetailView 应该加载,因为我在 MainViewController 中为 DetailView.xib 文件中的视图创建了一个 IBOutlet。

我正在尝试使用 addSubview 命令,但由于某种原因它实际上并未执行该命令。它将通过命令,但实际上什么都不会改变。这是命令:

[self.view addSubview:myDetailView]

其中 myDetailView 是 IBOutlet

这个设置有什么问题?

感谢您的帮助。

编辑:

MainViewController.h(留下生成的代码):

IBOutlet UIView *myDetailView;

@property (nonatomic, retain) IBOutlet UIView *myDetailView;

MainViewController.m:

@synthesize myDetailView;

【问题讨论】:

你是如何加载DetailView.xib的? 你能发布更多代码来展示你如何实例化你的 myDetailView 吗? 你可以试试insertSubview:,这样你就可以控制z索引了。 【参考方案1】:

NSLog myDetailView 在添加子视图之前,如果它返回“(null)”,则 myDetailView 尚未初始化。确保您已在 Interface Builder 中连接视图。

【讨论】:

NSLog(@"%@", myDetailView);根本没有输出。我什至把 NSLog(@"Test");在它旁边并打印,但 detailView 没有。 它为空!为什么会这样?【参考方案2】:

我敢打赌 myDetailView 是零。 它可能是一个 IBOutlet,但它必须被连接。您连接 IBOutlet 的 XIB 显然应该已加载。

您是如何在代码中加载 DetailView.xib 的?你用loadNibNamed:owner:options:了吗?

【讨论】:

以上是关于添加子视图不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

添加子视图后 setNeedsDisplay 不起作用

尝试添加为子视图时,ScrollView 不起作用

添加带有约束的子视图不起作用

将子视图添加到静态 UITableViewCell 不起作用

在当前视图上添加子视图后 UIButton 不起作用

添加 UICollectionView 作为 UICollectionReusableView reloadData 的子视图不起作用,我想念啥?