2015-03-10 5 views
0

Я использую язык программирования Swift и с помощью UIAlertController с кнопкой «Отмена» для отображения предупреждения.
Я использую ниже код для создания кнопки отмены.UIAlertAction для управления в корневом представлении в Swift

let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: { (alert) -> Void in 
    self.navigationController?.popToRootViewControllerAnimated(true) 
}) 

alertController.addAction(cancelAction) 

При нажатии кнопки «Отмена» пользователь должен быть возвращен в контроллер корневого представления.
Но код не компилируется. Ошибка, показанная ниже:

Cannot invoke 'init' with an argument list of type '(title: StringLiteralConvertible, style: UIActionSheetStyle, handler: (($T2) -> Void) -> Void)' 

Я не мог понять, как решить эту проблему.

ответ

0

Try замена (предупреждение) с:

(alert :UIAlertAction!)

+0

Не работает. – Satyam

1

Другой ответ не работает для меня тоже; этот сделал. Добавить эту функцию

func popToRoot() { 
     self.navigationController?.popToRootViewControllerAnimated(true) 
} 

Затем измените исходную функцию

{ (alert :UIAlertAction!) -> Void in 
       self.popToRoot() 
} 
1

Вы могли бы попробовать это.

let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: 
      { action in 
      self.navigationController?.popToRootViewController(animated: true) 
      })