2017-01-12 12 views
1

У меня около 20 кнопок в моем приложении iOS, которые переходят к тому же UIViewController. Это игра, написанная в Свифте. Чтобы реализовать это, я создал segue в Storyboard для 1-й кнопки. Для остальных кнопок я привязываю их к одному методу IBAction и вызывая созданный выше segue с его идентификатором. Проблема с этим подходом заключается в том, что для приложения 1-й кнопки попытка выполнить segue 2 раза, и она выдает ошибку в журналах: UIView: 0x7f7fe9c84600; frame = (0 0; 320 568); autoresize = W + H; layer = CALayer: Окно 0x7f7fe9c848d0 >> не равно окну TileGame.GameScreen: 0x7f7fe9dc6bc0>! На самом деле это не проблема, видимая для использования, но я думаю, что это неправильный способ делать что-то. Кроме того, он добавляет ненужные записи.Как использовать один и тот же сегмент для нескольких кнопок в iOS swift?

Ниже мой код IBAction

@IBAction func action(_ sender: Any) { 
    performSegue(withIdentifier: "segueToSecondScreen", sender: self) 
} 

Кто-нибудь есть предложение о том, как справиться с этой проблемой? Любая помощь приветствуется.

+0

Возможно, у вас такая же проблема. http://stackoverflow.com/q/40002607/6433023 –

+0

Используйте руководство segue и подключите все IBActions к тому же методу –

+1

Привет, ребята, большое спасибо за помощь. Ответ @ Arasuvel ниже решил мою проблему. – hellSigma

ответ

3

Вместо того, чтобы создавать сегмент для кнопки. Вы можете создать для ViewController.

Шаг1: enter image description here

Шаг2: enter image description here

Step3: enter image description here

Дайте имя Segue и использовать это все действия кнопок.

+0

Большое спасибо. Это отлично работает. Раньше я также думал, что должен быть один, и попытался сделать ctrl + перетаскивание с одного контроллера вида на другой, но похоже, что для контроллера просмотра ctrl + drag работает в списке меню с левой стороны, а не внутри реальной раскадровки. Во всяком случае, проблема решена. Благодарю. :) – hellSigma

+0

@hellSigma: Это здорово. – Arasuvel

+0

Вы можете сделать это и в Раскадке. Управляйте перетаскиванием из значка ViewController в верхней части окна ViewController на требуемый ViewController в раскадровке. – vacawama

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

  • Нет связанных вопросов^_^