2015-01-16 2 views
0

В экране назначения, я поставил это:разматывает сегментный в Xcode6 программно и Свифта

@IBAction func unwindToLogin (segue : UIStoryboardSegue) {} 

От кнопки Раскадровка к примеру, я могу легко обратиться, чтобы расслабиться.

Но я не могу сделать это программно. Я попытался вызвать это на текущем экране:

performSegueWithIdentifier("unwindToLogin", sender: nil) 

но он падает из-за нуля. Поэтому, похоже, из раскадровки «выход» я могу «поймать» разматывание и связать его с кнопкой, но я не могу сделать это программно.

+0

возможно дубликат [Анвайнд Segue в Xcode 6 Beta 4] (http://stackoverflow.com/questions/24960900/unwind-segue-in-xcode-6-beta-4) – vacawama

ответ

0

Имя функции, которую вы поставили в контроллере представления назначения, не является идентификатором сегмента. Вам нужно установить идентификатор в раскадровке и использовать эту строку в performSegueWithIdentifier.

enter image description here

+0

Это может быть так, но если вы не выполняете его программно, он автоматически называет имя функции. Я думал, что это будет так же программно. Я не вижу, как вы установили идентификатор на раскадровке для кода восстановления, это просто функция performSegueWithIdentifier. –

+0

@RobertBrax, вы выбираете segue в списке сцен и устанавливаете идентификатор в инспекторе атрибутов. Если вы не делаете это программно (например, с помощью кнопки), вам вообще не нужен идентификатор, это не значит, что «он автоматически ловит имя функции». – rdelmar

+0

спасибо, но отмените segue в списке сюжетов. @IBAction func unindToLogin (segue: UIStoryboardSegue) {} определяет разматывание и не показывает там –

0

Использование Selector s:

Selector("unwindToLogin:") 

Кстати, Selector s должен быть создан автоматически string с, так что я думаю, что проблема с отсутствующей точкой с запятой, но я не мой Mac со мной атм ,

+0

спасибо, где я должен поставить селектор точно? –

+0

'performSegueWithIdentifier (Селектор (« unwindToLogin: »), отправитель: nil)' – Teejay

+0

thats то, что я пытался, но получил Не могу вызвать 'init' с помощью списка аргументов типа '($ T3, отправитель: NilLiteralConvertible)' –

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