我有一个car_insurance_type_id = params[:car_insurance_type_id] || 1
car_insurance_objects_private = car_model_search.car_insurance_objects.where(car_insurance_type_id: car_insurance_type_id)
,其中的选项从数组中填充并呈现给用户。然后,用户从警报中选择一个选项。在此之后,我有一个单独的警报,为用户提供一个确认消息,其中包含一个正常的按钮。
UIAlertController
上面的代码收集数组中的数据并将其推送到myAlert中的操作中。上面的代码在for循环中。
在此之后,我使用一个函数来检索最顶层的视图控制器,然后按下一个警报。
myAlert.addAction(UIAlertAction.init(title: item, style: .Default, handler: {
(UIAlertAction) in
self.chosenBusiness.append(businessNameData[item]!)
}))
self.presentViewController(myAlert, animated: true, completion: nil)
我收到的错误是:
尝试加载视图控制器的视图 取消分配并且不被允许,可能导致未定义的行为。 UIAlertController:0x1535b1cd0。
有人可以帮我吗?
答案 0 :(得分:2)
我认为这就是你要找的东西。必须通过第一个解雇行动来调用第二个。此外,无论何时使用UI,使用dispatch_async(dispatch_get_main_queue()) {
\\code }
如果你不肯定,那么你现在正在主要队列中。
let firstAlertController = UIAlertController(title: "First", message: "This is the first message.", preferredStyle: UIAlertControllerStyle.Alert)
let secondAlertController = UIAlertController(title: "Second", message: "This is the second message.", preferredStyle: UIAlertControllerStyle.Alert)
let secondDismissAction = UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default, completion: nil)
secondAlertController.addAction(secondDismissAction)
let firstDismissAction = UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default) {
UIAlertAction in
dispatch_async(dispatch_get_main_queue()) {
self.presentViewController(secondAlertController, animated: true, handler: nil)
}
}
firstAlertController.addAction(firstDismissAction)
self.presentViewController(firstAlertController, animated: true, completion: nil)