Должны ли мы избегать цикла push segue между двумя представлениями?

Что ж, для некоторых из вас этот вопрос может показаться смешным, но я обсуждаю с моими товарищами по команде дизайн приложения для iOS, и мне нужно ваше мнение по этому поводу.

Старый дизайн, с которым я не согласен, выглядит следующим образом

  • У нас есть ViewControllerA, который содержит кнопку «Перейти к B». Кнопка имеет переход PUSH для перехода к B.
  • У нас есть ViewControllerB, который содержит кнопку «Перейти к A». Кнопка имеет переход PUSH для перехода к A.
  • Нам приходится много путешествовать между двумя ViewController'ами.

Как видите, между ViewController A и B существует цикл перехода, и я думаю, что мы никогда не должны допускать этого. Я бы предпочел перейти от B к A с помощью кнопки «Назад» на панели навигации.

Насколько серьезен цикл перехода PUSH в дизайне? Допустимо ли это в некоторых случаях? Где я могу увидеть рекомендованный Apple хороший дизайн (если есть?)

РЕДАКТИРОВАТЬ: Я пробовал решение nfarshchi "всплывать перед нажатием", но оно не работает. Вот как я это сделал: 1) Я не могу одновременно создать переход из VC A в VC B и переход из VC B в VC A. Кажется, что раскадровка не позволяет этому произойти 2) Таким образом, я создаю один переход с идентификатором «gotoB» от кнопки «Перейти к B» в VC A к VC B и один переход с идентификатором «gotoA» от кнопки «Перейти к A» в VC B к VC A.

Таким образом, раскадровка будет выглядеть так:

VC X ---Push---> VC A <----Push----> VC B (Причина, по которой мне нужен ViewController X, будет объяснена позже) 3) В VC A у меня есть это:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSLog(@"Prepage for segue go to B") ;
    if ([[segue identifier] isEqualToString:@"gotoB"] ) {
        [self.navigationController popViewControllerAnimated:NO];

    }
}

Мне нужен VC X, потому что я не могу извлечь ViewController из стека, если там есть только один ViewController.

Теперь это кажется правильным, но когда я нажал «Перейти к B», вместо этого он перешел к VC X. Было ясно, что вышеприведенный popViewControllerAnimated: извлек VC A, и все, переход к VC B больше не запускался. В результате VC B не был помещен в стек, как ожидалось.

Таким образом, я считаю невозможным реализовать решение nfarshchi

5
задан grandagile 26 June 2012 в 10:40
поделиться