我們正在使用一些自定義視圖來處理項目。我們有以下層次:我如何處理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