添加子视图不起作用?
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:
了吗?
【讨论】:
以上是关于添加子视图不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
将子视图添加到静态 UITableViewCell 不起作用
添加 UICollectionView 作为 UICollectionReusableView reloadData 的子视图不起作用,我想念啥?