【问题标题】:Multiple Views in One Nib (addSubview)一个 Nib 中的多个视图 (addSubview)
【发布时间】:2010-11-08 10:00:44
【问题描述】:

我正在努力保持我的代码干净并减少文件数量。我正在使用 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 中)之间建立连接。这就是我应该做的对吗?

【问题讨论】:

    标签: iphone uiview uitableview


    【解决方案1】:

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

    [UIWindow addSubview:self.downloadView]; 
    

    看看它是否出现。或者,

    [self.tableView addSubview:self.downloadView];
    

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

    【讨论】:

    • UIWindow 不喜欢 addSubview: *** +[UIWindow addSubview:]: unrecognized selector sent to class 0x31a5c4e0 *** 由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'*** +[UIWindow addSubview:]: unrecognized selector sent to class 0x31a5c4e0' 我也尝试了第二种方法,但没有任何作用。
    • 抱歉,UIWindow 代码不是文字。您需要将 UIWindow 部分替换为实际的 UIWindow 对象。 UIView 在 Interface Builder 层次结构中的什么位置?是MyViewController下的UIView吗?
    猜你喜欢
    • 1970-01-01
    • 2011-02-05
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 2012-02-06
    • 2015-09-17
    • 1970-01-01
    相关资源
    最近更新 更多