0

我试图保持我的代码干净并减少文件数量。我正在使用 UITableViewController,我想在它上面加载另一个视图。我认为这很简单:

(1) 在我的 .h 文件中创建一个 IBOutlet

@interface MyViewController : UITableViewController {
    ...
    UIView *downloadView;
    ...
}
...
@property (nonatomic, retain) IBOutlet UIView *downloadView;
...

(2) 将其链接到我在 IB 中的视图

(3)做类似的事情:

self.view = downloadView;

或者

[self.view addSubview:self.downloadView];

但这对我不起作用。如果我做

[self.tableView removeFromSuperview];

然后表格视图消失了,但我不知道如何从我的笔尖添加我的视图。我正在以编程方式为 tableView 做所有事情,但我认为这并不重要。并且使用 UITableViewController 子类化 UIViewController 我认为使用 addSubview 或类似的东西不会有问题。我错过了什么?这应该没那么难吧?

更新:所以,如果我执行以下操作:

UIView *newView = [[UIView alloc] initWithFrame:self.view.frame];
newView.backgroundColor = [UIColor greenColor];
[self.view addSubview:newView];

它(主要)做了我想要的。那么这是否意味着我在连接 IB 视图的方式上搞砸了?在 IB 中,我将 fileOwner 的类设置为 MyViewController,并在 downloadView 和我创建的视图(在 IB 中)之间建立了连接。这就是我应该做的对吗?

4

1 回答 1

-1

我认为这是您在层次结构中添加视图的位置的问题。你可以试试这个:

[UIWindow addSubview:self.downloadView]; 

看看它是否出现。也许,

[self.tableView addSubview:self.downloadView];

否则我认为你的想法是正确的。

于 2009-07-06T15:24:28.023 回答