2010-05-14 97 views
1

我有一個uipickerview,它出現在一個ActionSheet中。所有這些都在「MultiPicker」類中。我從 「FirstViewController」 創建一個新的實例是這樣的:爲什麼我無法將新實例的委託設置爲自我?

multiPicker *multiPic = [[multiPicker alloc]init]; 
multiPic.delegate = self; 

[multiPic action:aRunIndex]; 

而且裏面的 「multiPicker」,在 「行動:」

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:title   delegate:otroDelegate cancelButtonTitle:nil destructiveButtonTitle:@"Cancel" otherButtonTitles:@"Done", nil]; 

UIPickerView *pickerView = [[[UIPickerView alloc] init] autorelease]; 
pickerView.tag = 101; 
pickerView.delegate = self; 
pickerView.dataSource = self; 
pickerView.showsSelectionIndicator = YES; 

[actionSheet addSubview:pickerView]; 
[actionSheet showInView:self.view]; 

我需要 「FirstViewController」 時MultiPicker完成,這樣我就可以更新FirstView中的表格。我嘗試將一個新的代理設置爲MultiPicker,它在完成時告訴FirstView。但是第一段代碼中的「multipic.delegate = self」指令導致應用程序崩潰,並顯示「終止由於未捕獲的異常」。

如果我只是把所有的「MultiPicker」代碼FirstViewController類中,而不是在一個單獨的一個,阻塞,當我試圖推動從不同按鈕的動作片留「取消」

任何想法?

感謝ü

回答

0
  1. 確保您的類的「自我」實現需要協議
  2. 協議有可選和必需的方法,你必須實現你的類「自我」代表「協議」的所有必需的方法
相關問題