Я думал, что добавлю еще одну возможность. Одна из вещей, которую вы можете сделать, - вы можете соединить две сцены в раскадровке, используя переход, который не привязан к действию, а затем программно запустить переход внутри вашего контроллера представления. Для этого вам нужно перетащить значок владельца файла в нижней части сцены раскадровки, являющейся сценой перехода, и перетащить вправо к целевой сцене. Я добавлю изображение, чтобы помочь объяснить.
Появится всплывающее окно «Ручной переход». Я выбрал Push как тип. Нажмите на маленький квадрат и убедитесь, что вы находитесь в инспекторе атрибутов. Дайте ему идентификатор, который вы будете использовать для ссылки на него в коде.
Хорошо, теперь я собираюсь перейти с помощью кнопки панели инструментов. В viewDidLoad или в другом месте я создам элемент кнопки на панели навигации с таким кодом:
UIBarButtonItem *buttonizeButton = [[UIBarButtonItem alloc] initWithTitle:@"Buttonize"
style:UIBarButtonItemStyleDone
target:self
action:@selector(buttonizeButtonTap:)];
self.navigationItem.rightBarButtonItems = @[buttonizeButton];
Хорошо, обратите внимание, что селектор - buttonizeButtonTap :. Поэтому напишите метод void для этой кнопки, и внутри этого метода вы будете вызывать segue следующим образом:
-(void)buttonizeButtonTap:(id)sender{
[self performSegueWithIdentifier:@"Associate" sender:sender];
}
Параметр sender необходим для идентификации кнопки при вызове prepareForSegue. prepareForSegue - это метод фреймворка, в котором вы создадите экземпляр своей сцены и передадите ей все значения, которые понадобятся для ее работы. Вот как выглядит мой метод:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"Associate"])
{
TranslationQuizAssociateVC *translationQuizAssociateVC = [segue destinationViewController];
translationQuizAssociateVC.nodeID = self.nodeID; //--pass nodeID from ViewNodeViewController
translationQuizAssociateVC.contentID = self.contentID;
translationQuizAssociateVC.index = self.index;
translationQuizAssociateVC.content = self.content;
}
}
Хорошо, только что проверил, и это работает. Надеюсь, это поможет вам.