Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 文件';老板的困惑_Ios - Fatal编程技术网

Ios 文件';老板的困惑

Ios 文件';老板的困惑,ios,Ios,假设我有以下XIB: IssueSelectorViewController 文件所有者:IssueSelectorViewController IssueCell-文件所有者-IssueSelectorViewController 文件所有者:IssueSelectorViewController 在IssueSelectorViewController.h文件中,我有以下内容: @interface IssueSelectorViewController : UIViewCont

假设我有以下XIB:

  • IssueSelectorViewController
    • 文件所有者:IssueSelectorViewController
  • IssueCell-文件所有者-IssueSelectorViewController
    • 文件所有者:IssueSelectorViewController
在IssueSelectorViewController.h文件中,我有以下内容:

@interface IssueSelectorViewController : UIViewController <AQGridViewDelegate, AQGridViewDataSource, ReaderViewControllerDelegate,UIScrollViewDelegate, IconDownloaderDelegate>
@property (nonatomic, strong) IBOutlet AQGridView * gridView;
@property (nonatomic, strong) IBOutlet IssueCell *gridViewCellContent;
...
@end
nib中的“文件所有者”是代理或占位符。当实际加载nib时,与此占位符的任何连接都会连接到实际拥有nib的真实对象。因此,当执行[UIViewController initWithNibName:bundle:]时,文件的所有者占位符将替换为实际的视图控制器对象

加载自定义表视图单元格时,情况非常类似(我假设您在tableView:cellforrowatinexpath:method中执行此操作)。加载nib,指定所有者,该所有者对象将获得“文件所有者”占位符在nib本身中拥有的所有连接

我希望这有意义

如果发布tableView:cellforrowatinexpath:,您可以看到连接的位置。(或者,如果为tableView注册了nib,则在创建该nib时指定了所有者。)

编辑

好的,从你发布的代码来看:

[[NSBundle mainBundle]loadNibNamed:@“IssueCell”所有者:自选项:nil]

您将所有者指定为“self”,因此“self.gridViewCellContent”应该是刚从nib加载的新单元格,前提是您在nib中建立了正确的连接。加载nib后,与nib中“文件所有者”的任何连接现在都将连接到“self”(您的视图控制器)


(你在那里加载nib似乎很奇怪,因为该方法需要AQGridView*作为参数,但我想你知道你在那里做什么)

我添加了一个使用gridViewCellContent的示例。所以每次调用该方法时,我都会创建一个新的IssueCell?这不好…我只需要确定单元格的宽度和高度,也许我应该改为硬编码。正确,每次调用该方法时,都会创建一个新单元格,并且“gridViewCellContent”属性会重置为该新单元格。
- (CGSize)portraitGridCellSizeForGridView:(AQGridView *)aGridView
{
    [[NSBundle mainBundle] loadNibNamed:@"IssueCell" owner:self options:nil];
    return self.gridViewCellContent.frame.size;
}