2016-06-23 2 views
1

Я разрабатываю приложение, в котором пользователь может купить еду в приложении и доставить ее домой. В какой-то момент у пользователя есть некоторые товары на его тележке (отображается в контроллере вида табуляции), и он идет, чтобы подтвердить свой адрес и способ оплаты (они сделаны в двух разных толкаемых контроллерах представлений). И когда покупка будет завершена, приложение отобразит некоторое сообщение, информирующее, был ли платеж успешным или нет (также отображается в толкаемом контроллере просмотра после того, как он подтверждает). Итак, после того, как пользователь выполнит покупку, я хочу убрать все эти контроллеры представлений из процесса покупки и вернуться к контроллеру представления вкладок, нажав на кнопку.Отклонить несколько контроллеров с толкаемым дисплеем

Как отключить все эти толкаемые контроллеры просмотра?

Вот изображение раскадровки:

enter image description here

ответ

7

Вы можете использовать навигационный контроллер встроенный в функциональности поп обратно в контроллер представления корня.

self.navigationController?.popToRootViewControllerAnimated(true) 

Это удалит все толкаемым контроллеры просмотреть у вас есть по навигации стека и вернуться к контроллеру в стеке. Вы можете прикрепить эту функцию к селектору действий при нажатии кнопки.

0

Да, вы можете это сделать следующим образом.

Предположим, у вас есть структура, как это ---

Navigation Controller - (корень) -> VCA -> VCB -> VCC -> VcD

Теперь вы на VcD и вы хотите отклонить или, скорее, поп в VCa, а затем просто сделать это [self.navigationController popToRootViewController]

Это приведет к удалению или отклонению всех VC и возврату в VCa, так как VCa является контроллером корневого контроллера навигационного контроллера.

Теперь, если вы хотите, чтобы уволить или поп в ВПЦ, то сделайте следующее

for(UIViewController *vc in self.navigationController.viewControllers){ 
     if([vc isKindOfClass:[VCb class]]){ 
      // this means you have successfully picked VCb among all the vc 
      // inside of the viewControllers in the Navigation stack. 
      [self.navigationController popToViewController:vc animated:YES]; 
     } 
    } 

Это должно сделать это. Надеюсь это поможет.

+0

Ваш ответ помог мне найти определенный контроллер просмотра в иерархии навигации и отбросить все остальные контроллеры представлений до этого конкретного. благодаря –

Смежные вопросы