ฉันมี tableview ซึ่งเมื่อโหลดแล้วแต่ละเซลล์อาจส่งคืน NSError ซึ่งฉันเลือกให้แสดงใน UIAlertController ปัญหาคือฉันได้รับข้อผิดพลาดนี้ในคอนโซลหากมีการส่งคืนข้อผิดพลาดหลายรายการ
คำเตือน: พยายามนำเสนอ UIAlertController: 0x14e64cb00 บน MessagesMasterVC: 0x14e53d800 ซึ่งกำลังนำเสนออยู่แล้ว (null)
ตามหลักการแล้วฉันต้องการจัดการสิ่งนี้ในวิธีการขยาย UIAlertController ของฉัน
class func simpleAlertWithMessage(message: String!) -> UIAlertController {
let alertController = UIAlertController(title: nil, message: message, preferredStyle: UIAlertControllerStyle.Alert)
let cancel = UIAlertAction(title: "Ok", style: .Cancel, handler: nil)
alertController.addAction(cancel)
return alertController
}
จากคำตอบของ Matt ฉันเปลี่ยนส่วนขยายเป็นส่วนขยาย UIViewController ซึ่งสะอาดกว่ามากและประหยัดรหัส presentViewController จำนวนมาก
func showSimpleAlertWithMessage(message: String!) {
let alertController = UIAlertController(title: nil, message: message, preferredStyle: UIAlertControllerStyle.Alert)
let cancel = UIAlertAction(title: "Ok", style: .Cancel, handler: nil)
alertController.addAction(cancel)
if self.presentedViewController == nil {
self.presentViewController(alertController, animated: true, completion: nil)
}
}