在联系人列表(AddressBook)上显示AlertView

时间:2016-02-05 08:08:19

标签: ios swift swift2 abaddressbook

我从AddressBookUI中选择姓名和姓氏。而且我控制着我的数组中是否存在用户名,我可以找到它。

我的问题是我尝试在用户点按(选择)后尝试展示和提醒我,但是我遇到了这个问题,但我想在下面找到此问题,而我想在contactList。

  

警告:尝试出现    谁的观点   不在窗口层次结构中!

     

尝试加载视图控制器的视图   不允许取消分配,可能导致未定义的行为   ()

请问我的问题在哪里?

func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController, didSelectPerson person: ABRecord) {

    let firstName = ABRecordCopyValue(person, kABPersonFirstNameProperty)?.takeRetainedValue() as? String ?? ""
    let lastName  = ABRecordCopyValue(person, kABPersonLastNameProperty)?.takeRetainedValue() as? String ?? ""

    if let parentVC = self.parentViewController as? UIPageViewController{
        if let parentNewCarRequestVC = parentVC.parentViewController as? NewCarRequestViewController{

            let people:RequestPeople = RequestPeople()
            people.name = first
            people.surname = last

            if first.isEmpty || last.isEmpty{

               print("Error")

            }else{

                for item in parentNewCarRequestVC.request.peoples{

                    if item.name == firstName && item.surname! == lastName{

                        let alert:UIAlertController = UIAlertController(title: “Error”, message: “Same Number”, preferredStyle:.Alert)
                        viewController.presentViewController(alert, animated:true, completion:nil);

                        return
                    }
                }

                parentNewCarRequestVC.request.peoples.addObject(people)
            }

        }
        tableView.reloadData()
    }
}

1 个答案:

答案 0 :(得分:0)

如何将整个代码放入调度块中。

dispatch_async(dispatch_get_main_queue()) { () -> Void in
    let firstName ...
    ...
    if {...
    tableView.reloadData()
    }   
}