Я работаю над проектом, где я вызываю несколько segues вместо использования навигационных контроллеров. Раньше в моем проекте я настраивал modal segue и вызывал его из метода IBAction из нескольких разных кнопок (я вызываю один и тот же сегмент из разных кнопок, когда передаю строку вместе с segue).Каков правильный способ вызова segue в XCode 4?
В моей раскадровки это выглядит следующим образом:
Тогда в моем коде, я делаю это:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSLog(@"Vimeo Segue");
if([segue.identifier isEqualToString:@"playVimeo"]) {
WebViewViewController *controller = (WebViewViewController *)segue.destinationViewController;
controller.vimeoURL = vimeoURL;
}
}
- (IBAction)launchCreativeFuture:(id)sender {
vimeoURL = @"72053500";
[self performSegueWithIdentifier:@"playVimeo" sender:sender];
}
Это работает, и я счастлив с этим. Однако ...
Я наткнулся на другой способ сделать это, и я смущен, почему они оба работают, и какой из них рекомендуется.
Здесь я добавил связанный IBAction и модальный SEGUE, в соответствии с этими фотографиями:
И мой код выглядит следующим образом:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if([segue.identifier isEqualToString:@"pushToGraduateCourses"]) {
NSLog(@"Grad Segue");
UIViewController *controller = (UIViewController *)segue.destinationViewController;
}
}
- (IBAction)launchGraduate:(id)sender {
NSLog(@"Grad Button");
[self performSegueWithIdentifier:@"pushToGraduateCourses" sender:sender];
}
Довольно идентичный код, насколько я могу судить ... за исключением того, что когда я это делаю, я получаю предупреждение: «Предупреждение: пытайтесь представить, пока презентация идет! » ... когда я смотрю на свою консоль, «Grad Segue» записывается дважды ... что имеет смысл, но в моем первом примере «Vimeo Segue» регистрируется только один раз.
Я предполагаю, что я спрашиваю несколько вопросов:
а) кто может определить разницу между этими двумя методами? Потому что я не могу.
b) действительно ли создание segue из Interface Builder автоматически вызывает функцию executeSegueWithIdentifier от кнопки без необходимости программно вызывать это из IBAction, связанного с этой кнопкой?
c) какой способ рекомендуется?
Спасибо заранее,
~ Джесси
Приветствия, спасибо Кевину, это помогает ... –
Ну, @ jesses.co.tt. Если это помогло, ответили ли вы на ваш вопрос? Если это так, дайте ему хороший, большой, толстый зеленый флажок. :) – CaptJak
Да, я просто сделал.Я колебался b/c, он ответил только на 2/3 вопросов, но я думаю, я не должен задавать три вопроса в одном! –