2014-10-09 16 views
6

Mam kontroler kartę Widok, który ma przycisk jak tak i kiedy zostanie naciśnięty modalne pojawia:Pushing kontroler nawigacji po modalne kontrolera widoku przedstawiono

PostViewController *post = [[PostViewController alloc] init]; 

// [self.navigationController pushViewController:post animated:YES]; 

// Presentation 
[self presentViewController:post animated:YES completion:nil]; 

Kiedy modalne odbywa chcę Odrzuć go i wciśnij nowy kontroler widoku:

ProfilesViewController *profile = [[ProfilesViewController alloc] init]; 
[self.navigationController pushViewController:profile animated:YES]; 

Ale nie mogę tego zrobić w post vc, ponieważ jest to modal. Jak mam to zrobic?

+0

Dlaczego musisz coś przedstawić i odrzucić, zanim jeszcze się pojawi? – EridB

+0

Nie robię tego, – cdub

Odpowiedz

7

Możesz spróbować użyć completionBlock.

CompletionBlock wywoływana, gdy presentViewController jest gotowy.

PostViewController *post = [[PostViewController alloc] init]; 
[con presentViewController:post animated:YES completion:^{ 
    ProfilesViewController *profile = [[ProfilesViewController alloc] init]; 
    [self.navigationController pushViewController:profile animated:YES]; 
}]; 

Więcej informacji o presentViewController:animated:completion:Apple Doc

oddania: Blok do wykonania po zakończeniu prezentacji. Ten blok nie ma wartości zwracanej i nie przyjmuje parametrów. Możesz określić zero dla tego parametru.

+0

Dobra, więc popycha to za modal? – cdub

+0

Przesuwa się do stosu navigationController. – thedjnivek

+1

Jeśli chcesz odwołać swój modal przed, możesz dodać "dismissViewControllerAnimated: completion:' przy użyciu completionBlock też – thedjnivek

1

Dawka kontrolera widoku karty osadzone w UINavigationController? Jeśli nie, nie możesz oczywiście użyć self.navigationController.

+0

Osadza jedną – cdub

Powiązane problemy