Как выполнить анимированный пользовательский переход в раскадровке без NavigationController? - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть необходимость установить некоторые параметры перед выполнением перехода, поэтому я должен использовать CUSTOM SEGUE, верно? В этом случае я бы сделал переход с экрана на другой анимированным, но у меня нет NavigationController (и я не хочу его вставлять!)

Можно ли не использовать NavigationController и изменять представления с помощью пользовательского перехода?

В качестве альтернативы, есть возможность установить действие для кнопки и выполнить несколько строк кода перед выполнением перехода? Я нашел это решение:

  • (IBAction) showDetailView: (id) отправитель {

    // код

    .....

    [self executeSegueWithIdentifier: @ "ShowDetail" отправитель: отправитель];

}

но для этого нужен контроллер навигации ...

спасибо всем и извините за мой плохой английский!

1 Ответ

0 голосов
/ 21 февраля 2012

Когда вы создаете Segue в Storyboard, выберите «модальный» вместо «push» (пользовательский относится к третьему типу, который, я думаю, вам не нужен). Выберите переход и используйте инспектор атрибутов, чтобы дать ему имя. В моем примере кода я использую имя «editTitleBlock».

Чтобы установить свойства на контроллере представления назначения (который будет модальным контроллером представления), поместите prepareForSegueMethod в ваш первый контроллер представления как это:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"editTitleBlock"])  {
        [[segue destinationViewController] setTitleFieldString: @""];
        [[segue destinationViewController] setAltitudeFieldString:currentLocation.localizedAltitudeString];
        [[segue destinationViewController] setLocationFieldString:currentLocation.localizedCoordinateString];
        [[segue destinationViewController] setAuthorString:userName];

    if ([[segue identifier] isEqualToString:@"cancel"])  {
        // do nothing special
    }
}

чтобы вернуться к первому использованию контроллера представления:

[self dismissModalViewController animated:YES];
...