Рассмотрим представление с помощью кнопки. Мы можем перетащить соединение с этой кнопки на какой-то другой контроллер представления, создать segue в IB, и мы счастливы. Что делать, если мне нужен segue, который выполняется на каком-либо событии, скажем, на сетевом прогрессе, и это не связано с любыми действиями пользователя? На данный момент я помещаю кнопку, перетаскиваю выделение с этой кнопки, скрываю кнопку, назначаю идентификатор в segue и где-то в коде, который я выполняю этот сеанс. Тем не менее, я думаю, что размещение фиктивной кнопки - это не правильный путь. Возможно, я что-то пропускаю с помощью раскадровки, не могли бы вы помочь мне понять это?
Как выполнить сеанс, не связанный с вводом пользователя в iOS 5?
Ответ 1
Создайте свой segue с помощью ctrl, перетаскивая его с вашего контроллера вида на следующий вид. Затем, чтобы позвонить в ваш сеанс, звоните:
[self performSegueWithIdentifier: @"SegueToScene1" sender: self];
Убедитесь, что вы указали свое имя в раскадровке.
Ответ 2
Вы можете использовать метод performSegueWithIdentifier: для принудительного перехода к новому представлению на основе некоторых критериев. Когда вы вызываете это, он также автоматически вызовет prepareForSegue: (который обычно вызывается, когда раскадровка собирается перейти к новому представлению).
Я написал сообщение об управлении нажатием просмотров здесь, которое должно охватывать большую часть того, о чем вы говорите.