2015-10-15 3 views
1

У меня проблемы с моей кнопкой отмены. У меня есть это действие связано с моей кнопки отмены и я планирую закрыть контроллер представления так:Как создать кнопку отмены?

@IBAction func cancel(sender: UIBarButtonItem) { 
    dismissViewControllerAnimated(true, completion: nil) 
} 

мне было интересно, что очевидно, немного мне не хватает. (Это элемент кнопки со стрелкой для представления таблицы).

+0

Вы добавили элемент кнопки панели в виде таблицы или на панели навигации? –

+0

Ваши взгляды с помощью 'navigationController'? Вы можете попробовать 'navigationController !.popViewControllerAnimated (true)', хотя это не сработает, если представление будет представлено модально. –

+0

Приведенный выше код попытается отклонить контроллер дочернего представления, который был представлен в виде модально. Я добавил ответ, чтобы объяснить немного больше – Lukas

ответ

1
var b = UIBarButtonItem(title: "Cancel", style: .Plain, target: self, action: "Cancel clicked") 

Если вы хотите метод, чтобы взять отправителя в качестве параметра, вы бы поставить двоеточие в конце:

var b = UIBarButtonItem(title: "Cancel", style: .Plain, target: self, action: "CancelClicked:") 

func CancelClicked(sender: UIBarButtonItem) { 
} 
+0

, где вы назначаете этот var b, полностью записываете свой код –

+0

Могу ли я назначить кнопку в качестве розетки? – needshelp

0

Попробуйте это:

@IBAction func close(sender: AnyObject) { 
    self.dismissViewControllerAnimated(true, completion: nil) 
} 
0

Ваш код работает отлично с одним маленьким исправлением. Отклонение вызывается на контроллере представления. self.dismissViewController отклонит контроллер дочернего представления, представленный текущим vc. но если вы хотите закрыть существующий виртуальный канал, вы должны позвонить уволить на родителе

@IBAction func cancel(sender: UIBarButtonItem) { 
     presentingViewController.dismissViewControllerAnimated(true, completion: nil) 
} 
+0

Получение ошибки EXC_BAD_Instruction – needshelp

+0

Представлен ли VC модально? – Lukas

0

После добавления Панели навигации (и пункт навигации) в раскадровку с помощью IB, ссылка на navigationItem вар будет автоматически отображаться в вашу ViewController файл. Добавьте код ниже, чтобы прикрепить кнопку отмены к navigationItem, чтобы отклонить модальный контроллер View:

@IBOutlet слабый навигатор varBar: UINavigationBar!

override func viewDidLoad() { 
    super.viewDidLoad() 
    navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(CancelClicked(sender:))) 
} 

func CancelClicked(sender: UIBarButtonItem) { 
    print("Cancel clicked!") 
    self.dismiss(animated: true, completion: nil) 
} 
Смежные вопросы