0

У меня есть 2 контроллера вида, и я просто пытаюсь переключаться между ними.Классы ViewController не переключаются должным образом

В первом случае переключатель я это (т.е. viewController1 загружает viewController2 для отображения):

// viewController1 объект

if(!_viewController2) 
{ 
    _viewController2 = [[ViewControllerSubClass alloc] initViewWithReferenceToCurrentView:self]; 
} 
[self presentViewController:_viewController2 animated:NO completion:nil] 

;

// FYI метод инициализации в ViewControllerSubClass выглядит следующим образом

-(id)initViewWithReferenceToCurrentView:(TakePhotoViewController*)view 
{ 
    self = [self init]; 
    _previousViewController = view; 
    return self; 
} 

Это работает, вид делает загрузить этот класс. Однако, когда я пытаюсь вернуться к viewController1 внутри класса viewController2, он НЕ работает, а viewController2 занимает экран.

// viewController2 объект

-(void)goBackToViewControllerOne 
{ 
    [self presentViewController:_takePhotoView animated:NO completion:nil]; 
    [self removeFromParentViewController]; 
} 

я могу 100% подтвердить код называется, но вид не переключение.

Знаешь, что мне недостает? Благодаря!!

+0

Вы используете UINavigationController? –

+0

Я использую ViewController, который вы получаете при создании одного вида приложения. Его просто ViewController – Aggressor

+1

То, как вы это делаете, немного вонючий. Попробуйте вместо этого изменить контроллер корневого представления UIWindow. –

ответ

2

Во-первых, вам не нужно создавать специальный инициализатор, через который вы передаете указатель текущего контроллера представления, - когда вы представляете контроллер вида по модулю, у него есть свойство, представляющееViewController, которое укажет на контроллер которые его представили.

Во-вторых, если вы хотите вернуться к первому контроллеру, вы должны использовать функцию rejectViewControllerAnimated: completion :, а не первый контроллер.

+0

Моя благодарность rdelmar, отлично работает. – Aggressor

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