我正在打開一個CNContactPickerViewController以供在應用程序中使用,但我想要改變它呈現的方式以適合我的應用程序需求,最好不要滾動我自己並做大量重新發明的輪子。這就是我如何使用Objective-C打開它....是否可以自定義CNContactPickerViewController?
self.contactPicker = [[CNContactPickerViewController alloc] init];
self.contactPicker.delegate = self;
//Only enable contacts to be selected that have atleast one email address
NSArray *propertyKeys = @[CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey];
NSPredicate *enablePredicate = [NSPredicate predicateWithFormat:@"[email protected] != 0"];
self.contactPicker.displayedPropertyKeys = propertyKeys;
self.contactPicker.predicateForEnablingContact = enablePredicate;
[self presentViewController:self.contactPicker animated:YES completion:nil];
當它打開它目前看起來是這樣的:
然而,由於SDK中搜索錯誤對於這類視圖中的人無效,因爲您無法從搜索結果中進行選擇。我要爲此提交一個錯誤,但同時首先我想隱藏搜索欄。我發現了一些關於刪除SearchBar的舊問題,但它們與ABPeoplePickerNavigationController相關,並且與CNContacts無關。 我也不希望使用組,如果我可以刪除該按鈕,並將取消按鈕移到左側,這將是偉大的,並會使我的應用程序中的選擇界面更清潔。這是我想它看起來:
誰能告訴我,如果這是可能的,也許指向我朝着正確的方向?我有委託方法選擇後接收聯繫人數組,我的問題是它在應用程序中的樣子。
在此先感謝!
等離子
感謝您的答覆,但正如我在文章中提到的,我沒有問題檢索和管理聯繫人/返回的結果。問題在於默認Apple ContactPicker GUI的外觀以及「搜索」不起作用的事實。我沒有看到通過編碼我自己的視圖控制器來重新發明輪子的意義,如果只需稍作調整,標準控制器也可以發揮作用。 – Plasma
@plasma你發現了什麼,或者你最終做了什麼?這個問題讓我感到無法接受。看起來好像CNContactPickerViewController被蘋果公司的幾個iOS之前的版本所遺留下來,它是無法使用的,錯誤纏身的狀態。我發現很難相信蘋果沒有人能夠通過至少刪除無用的搜索欄來解決這個問題,因爲這個搜索欄使得這個控制器無法使用。 – SAHM
我沒有得到任何地方,我看了幾個做類似事情的github項目,但不喜歡其中的任何一個。我暫時擱置了這個項目,直到我有時間推出自己的產品並從那裏出發。 – Plasma