我们正在使用一些自定义视图来处理项目。我们有以下层次:我如何处理iOS开发中的自定义事件?
的UIViewController - > UIScrollView中(自定义子类) - > UIView的(自定义子类)
我们呈现动态生成按钮的网格。当用户点击属于定制滚动视图的UIViews之一,我们火,看起来像这样的方法:
- (void)handleTapFrom:(UITapGestureRecognizer *)recognizer {
[[self superview] itemSelected:self];
}
在这种情况下,超级观点是我们的UIScrollView的自定义子类。从这里我们开始另一种方法:
- (void) itemSelected: (id)selectedItem {
itemView *item = selectedItem;
[[self superview] initSliderViewForItemNamed:item.name];
item = nil;
}
现在,这里是东西突破的地方。我们想在UIViewController中触发另一个方法来在视图层次结构的顶部加载一个新视图。因此,在UIViewController中,我们有这个方法测试成功:
- (void) initSliderViewForItemNamed:(NSString *)selectedItemName {
NSLog(@"Selected item was found! %@",selectedItemName);
}
但我们永远无法达到这点和应用程序崩溃。这是因为我们无法在这里引用UIViewController。相反,我们引用了UIViewController的视图属性。因此,我们的实际对象层次是:
UIViewController.view - > UIScrollView中(自定义子类) - > UIView的(自定义子类)
这使我两个问题。
- 我们如何引用属于控制器视图属性的子视图中的UIViewController?
- 这种方法是错综复杂的。有一个更好的方法吗?我们是否应该将UIViewController作为UIScrollView的自定义子类的委托来分配?
这组视图允许用户打开一个项目。我们想为视图层次结构顶部的选定对象实例化一个项目视图。当用户关闭一个项目时,他们返回到这个视图。 – 2010-07-15 06:16:06
会假设我们的skype convo固定它:D – 2010-07-15 06:24:51