Я думал, что добавлю еще одну возможность. Одна из вещей, которую вы можете сделать, - вы можете соединить две сцены в раскадровке, используя переход, который не привязан к действию, а затем программным образом запустить переход внутри вашего контроллера представления. Для этого вам нужно перетащить значок владельца файла внизу сцены раскадровки, являющейся сценой перехода, и перетащить вправо к месту назначения. Я добавлю изображение, чтобы помочь объяснить.
Появится всплывающее окно "Ручной переход". Я выбрал Push как тип. Нажмите на маленький квадрат и убедитесь, что вы находитесь в инспекторе атрибутов. Дайте ему идентификатор, который вы будете использовать для ссылки на него в коде.
![enter image description here](https://i.stack.imgur.com/09MxJ.png)
Хорошо, теперь я собираюсь перейти к использованию кнопки панели инструментов. В 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;
}
}
Хорошо, только что проверил и все работает. Надеюсь, это поможет вам.