【发布时间】:2012-03-20 05:51:12
【问题描述】:
我有一个 UINavigationController/UITableView,当表格为空时,我想在其上方显示一个 UIView,以提示用户如何将项目添加到表格中。
我从未制作过 UIView(与之前的 UIViewController 不同),所以我将逐步介绍我所做的一切:
- 创建一个新的 UIView 类 - MakeSentenceHelperView
- 制作一个名为 MakeSentenceHelperView.xib 的 nib
- 将文件的所有者设置为 MakeSentenceHelperView
在 MakeSentenceHelperView 中加载 nib:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
NSLog(@"makesentencehelperview init");
[[NSBundle mainBundle] loadNibNamed:@"MakeSentenceHelperView" owner:self options:nil];
}
return self;
}
并在 UITableViewController 中显示MakeSentenceHelperView:
//present the placeholder view for sentences
MakeSentenceHelperView *makeSentenceHelperView = [[MakeSentenceHelperView alloc] init];
NSLog(@"present placeholder: self.navigationcontroller.view: %@", self.navigationController.view);
//Something like this:
[self.navigationController.view addSubview:makeSentenceHelperView];
[self.navigationController.view bringSubviewToFront:makeSentenceHelperView];
类加载并记录正常,但 UITableView 前面没有出现任何内容 - 我哪里出错了?
更新:如果我添加 [self.tableView setHidden:YES]; 然后 tableview 消失并且空间是黑色和空的。我假设这意味着我在某处设置了错误的视图。
【问题讨论】:
-
在使用 nib 子类化 UIView 时,请通过 this link
-
这是一个非常有用的链接,谢谢 - 我实现了 awakeFromNib 和他们谈到的其他内容,但我仍然遇到同样的问题。
标签: ios cocoa-touch uitableview uiview addsubview