В моем приложении ios можно сказать, что у меня есть три ViewControllers
: A
, B
и C
.ios present view controller сразу после отклонения предыдущего
От A
Представляю B
и назначаю A
в качестве делегата. После того, как действие сделано на B
, я хочу уволить B
и представить C
от A
. Тем не менее, я хочу сделать это без A
, появляющегося на экране вообще. Это мой код прямо сейчас, внутри класса A
:
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
B *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"B-identifier"];
vc.delegate = self;
[self presentViewController:vc animated:NO completion:^{}];
}
Тогда это функция делегат внутри A
что B
вызовов при выполнении действия:
- (void) actionPerformed
{
[self dismissViewControllerAnimated:YES completion:^{
C *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"C"];
[self presentViewController:vc animated:NO completion:nil];
}];
Однако это приводит к C, чтобы показать для бит (после увольнения), хотя я помещаю код представления в обработчик завершения увольнения. Что я могу сделать, чтобы этого избежать?
Bro лучший способ сделать это в соответствии со мной будет путем добавления вашего B и C в качестве контроллера детского представления A, не представляя их в виде модально. Если хотите, я могу дать вам код. – iHulk
Я использую этот механизм для обработки логина - так что A является контроллером корневого представления, который проверяет, вошел ли пользователь в систему. Если нет, он отображает вид входа (контроллер просмотра B). Как только пользователь войдет в систему, он затем отобразит C. –
@iDeveloper покажет код ур и дайте понять, что означает u, имея дело с childviewcontrollers и как вы это делаете, не показывая A viewcontroller – iOSdev