从视图中删除 xib 文件

Posted

技术标签:

【中文标题】从视图中删除 xib 文件【英文标题】:Remove xib file from view 【发布时间】:2011-12-21 07:10:31 【问题描述】:

我正在从具有表格视图的视图控制器加载一个 xib 文件。

[[NSBundle mainBundle] loadNibNamed:@"NewView" owner:self options:nil])
    [self.newView setFrame:CGRectMake(0, 0, 320, 480)];
    [[UIApplication sharedApplication].keyWindow addSubview:self.newView];

视图已正确加载。 在 newView 中单击一个按钮,我想删除此视图。

[self.newView removeFromSuperview];

newView 被移除。但是它后面的tableview 没有显示任何东西。它只是显示一个透明的背景。找不到排序的方法。需要帮助

【问题讨论】:

为什么使用 [[UIApplication sharedApplication].keyWindow 作为父视图?你有正确的 tableView 的委托和数据源吗?您是否尝试在从父级删除 newView 后调用 [tableView reloadData] 来刷新 tableView? 我是 Objective c 和 iphone 开发的新手。看来我做事的方式不对。我在整个项目中一直在使用 [UIApplication sharedApplication].keyWindow 来加载 xib 文件。我不明白需要重新加载表格视图数据,也许我遗漏了一些东西。 那么,您确定表格视图的委托和数据源正确吗? 它会自动成为自我。对?你能解释一下吗 我尝试将委托和数据源设置为 self.它似乎不起作用 【参考方案1】:

此代码有效。

[[NSBundle mainBundle] loadNibNamed:@"NewView" owner:self options:nil];
[self.newView setFrame:CGRectMake(0, 0, 320, 480)];
[self.view addSubview:newView];

我删除了视图

[self.newView removeFromSuperview];

【讨论】:

以上是关于从视图中删除 xib 文件的主要内容,如果未能解决你的问题,请参考以下文章

View Controller 更新后继续加载xib文件

iOS - 从 XIB 文件中引用和以编程方式移动视图

从 xib 文件加载的自动调整视图大小

从 XIB 文件中为 ViewController 视图加载自定义 UIView

尝试以编程方式从一个 XIB 文件创建多个视图

从 xib 文件中删除界面元素