2009-07-06 60 views
0

我试图保持我的代码清洁,并保持文件数量。我正在使用UITableViewController,我想在其上加载另一个视图。我想这将是非常简单的:一个笔尖中的多个视图(addSubview)

(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中)之间建立连接。这就是我应该做的对吗?

回答

-1

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

[UIWindow addSubview:self.downloadView]; 

看看它是否出现。或者,也许,

[self.tableView addSubview:self.downloadView]; 

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

+0

的UIWindow不喜欢addSubview: *** + [一个UIWindow addSubview:]:无法识别的选择发送到类0x31a5c4e0 ***终止应用程序由于未捕获的异常 'NSInvalidArgumentException',原因:“*** + [的UIWindow addSubview:]:无法识别的选择器发送到类0x31a5c4e0' 而我也尝试了第二种方式,并没有做任何事情。 – RyanJM 2009-07-06 15:44:01

相关问题