Что ж, для некоторых из вас этот вопрос может показаться смешным, но я обсуждаю с моими товарищами по команде дизайн приложения для iOS, и мне нужно ваше мнение по этому поводу.
Старый дизайн, с которым я не согласен, выглядит следующим образом
Как видите, между 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