2015-08-27 3 views
-1

Я пытаюсь добавить лист действий. Из того, что я прочитал, UIActionSheet обесценивается в IOS 8, и вместо этого следует использовать Контроллер предупреждений. Вот мой фрагмент кода:Swift - UIAlertAction - не удалось найти имя пользователя по умолчанию?

let optionMenu = UIAlertController(title: nil, message: nil, preferredStyle: .ActionSheet) 
let takePhoto = UIAlertAction(title: "Take Photo", style: .Default, handler: { (alert: UIAlertAction) -> Void in 
//action goes here 
}) 

Однако. Я получаю сообщение об ошибке «Не могу найти элемент« По умолчанию ». Из того, что я понимаю, есть 3 стиля для UIAlertAction: По умолчанию, Отмена & Разрушительный. Что я делаю не так?

Большое спасибо :)

ответ

0

Проблема на самом деле с закрытием, а не с .Default, но это то, что компилятор жалуется. Тип в предупреждении неверен (едва ли). Вы можете изменить определение замыкания на одну из них, чтобы сделать его работу:

... handler: { (alert: UIAlertAction!) -> Void in 
... handler: { alert -> Void in 
... handler: { _ -> Void in //Use this if you don't care about the alert object 

бесстыдной плагин: Вы можете также использовать что-то вроде LKAlertController сделать создание действие листа очень легко. Он превратится в нечто вроде

ActionSheet().addAction(title: "Take Photo", style: .Default) { 
    //Action 
}.addAction(/* Your other actions */).show() 
0

компилируется, но у вас есть больше, чтобы сделать, как добавить .addAction, и т.д .. Обратите внимание, что предпочтительный стиль в optionMenu является .Alert. Существует отличное объяснение в IOS 8 Swift Cookbook от Vandad Nahavandipoor

 let optionMenu = UIAlertController(title: nil, message: nil, preferredStyle: .Alert) 
     let takePhoto = UIAlertAction(title: "Take Photo", 
     style: UIAlertActionStyle.Default, 
     handler: {[weak self] (paramAction:UIAlertAction!) in 

     }) 
Смежные вопросы