2015-05-20 39 views
1

在使用ABPeoplePickerNavigationController,didSelecPerson代表將在用戶選擇一個人後被調用,然後ABPeoplePickerNavigationController自行解散。我在收到didSelectPerson電話時需要提供另一個視圖控制器。現在這個問題是ABPeoplePickerNavigationController的動畫解散不完整。所以,下一個視圖控制器的表示會產生一個錯誤。ABPeoplePickerNavigationController類不支持子類

如果我繼承ABPeoplePickerNavigationController並重寫:

-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion 
{ 
    NSLog(@"%s", __PRETTY_FUNCTION__); 
    [super dismissViewControllerAnimated:flag completion:completion]; 

    [self.myDelegate didDismissPickerCompletion]; 
} 

這將解決這個問題。但蘋果文檔確實聲明「ABPeoplePickerNavigationController類不支持子類化」。這是否意味着他們會拒絕任何將這類陳述課程進行子分類的企圖?

注意:我不希望使用任何人造時間延遲作爲解決方案。

回答

1

,然後解散的ABPeoplePickerNavigationController本身

有你的問題。它只是因爲沒有解僱它而被解僱。明確地解僱它吧!請在didSelectPerson:實施中致電dismissViewControllerAnimated:completion:

現在你有一個完成處理程序,所以你可以在解僱完成時運行代碼。