【发布时间】:2014-04-05 08:34:40
【问题描述】:
首先,这是 Storyboard 的基本设置
UIViewController > 视图 > 容器视图 -> UICollectionViewController
容器和 UICollectionViewController 之间的嵌入 segue 是“SegueA”。
现在目标 UICollectionViewController 是 CustomCollectionVC.h 的子类。
而且 CustomCollectionVC 有一个公共方法:
- (void)updateCollection:(NSArray *)data;
包含的 UIViewController 需要对 CustomCollectionVC 的引用,因此:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"SegueA"])
{
customCollection = (CustomCollectionVC *)segue.destinationViewController;
}
}
然后,稍后(在加载了一些数据之后),我们调用:
[customCollection updateCollection:data];
但是,在这一点上,我得到了以下无益的错误:
-[UICollectionViewController updateCollection:]: unrecognized selector sent to instance 0x10bc73ef0
如果这意味着 customCollection 没有正确转换,那么我在 prepareForSegue 中做错了什么?
我见过很多人询问如何在容器内引用视图,他们都使用这种方法。
任何帮助将不胜感激!谢谢!
【问题讨论】:
-
我怀疑您的故事板中没有将目标控制器标识为
CustomCollectionVC。在执行(CustomCollectionVC *)演员之前检查它的实际类。 -
强制转换不会改变你的控制器的类,它只会告诉控制器你认为的类是什么。看起来您尚未将集合视图控制器的类更改为您的自定义类。
-
在“实用工具”面板中仔细检查所有网点。无法识别的选择器通常链接到错误的插座。
标签: ios iphone objective-c uiviewcontroller