Я создал segue (представленный модально) из контроллера A вида, чтобы просмотреть контроллер B, который запускается с помощью кнопки в контроллере навигации контроллера вида A. Используемый модал используется для отправки запроса друга, введя Эл. адрес. Когда пользователь вводит адрес электронной почты и нажимает кнопку для отправки запроса друга, я хочу выполнить действие, инициируемое кнопкой (вызов сервера для отправки запроса друга и возврата успеха, если письмо существует или возвращает ошибку, если адрес электронной почты не работает не существует). Если успех, я хочу выйти/отключить segue обратно на A. Если ошибка, я не хочу выходить/разматывать segue.Как выполнить действие перед тем, как запустить exit segue?
Я рассмотрел вопрос this, но, похоже, он не реализует то, что мне нужно. Я пытаюсь следующее:
class BViewController: UIViewController {
// The button function
@IBAction func sendFriendRequest(sender: AnyObject) {
println("Button Function.")
self.performSegueWithIdentifier("SendFriendRequest", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "SendFriendRequest" {
println("Preparing for segue.")
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
, а затем в первом контроллере представления:
AViewController: UIViewController {
// The unwind function
@IBAction func saveFriendRequest(segue:UIStoryboardSegue) {
println("Finished the segue.")
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Это является результатом, когда я создал SEGUE выхода для кнопки (Ctrl-перетащить кнопку на «Выход 'в ViewController), я получаю звонки в таком порядке:
Preparing for segue.
Finished the segue.
Button Function.
Однако, я не обязательно хочу называть prepareForSegue или раскрутку функцию каждый раз, только если сервер дает успех MESSA GE. Итак, как мне связать вещи в раскадровке, чтобы при вызове функции performSegueWithIdentifier мне не нужно было вызывать другие функции (prepareForSegue и т. Д.)?
Спасибо за помощь, это именно то, что мне нужно! – hoffware