2012-02-01 4 views
0

Проще говоря, я создал приложение, которое начиналось без контроллера навигации, поэтому все контролировалось через мой ViewController. С момента добавления контроллера навигации я добавил кнопку, чтобы перевернуть ее в основное окно навигационного контроллера из моего ViewController. Тем не менее, когда я нажимаю кнопку, она перезагружает одно и то же окно с помощью панели навигации сверху (я спрятал ее в исходном виде). Если я снова нажму одну и ту же кнопку, она загрузит соответствующий вид. Что я сделал неправильно, чтобы вызвать этот цикл? КодViewController с пеленгами NavigationController для себя

моей кнопки ниже

-(IBAction) btnSettings_Clicked: (id) sender { 
self.navigationController.navigationBarHidden = FALSE; 

[UIView beginAnimations:@"Flip View" context:nil]; 
[UIView setAnimationDuration:1.25]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
MyAppDelegate* appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:[self.navigationController view] cache:YES]; 
[UIView commitAnimations]; 

[appDelegate.navigationController popViewControllerAnimated:NO]; } 

ответ

0

Если этот код в ViewController и, как вы говорите, этот контроллер не будет нажата на навигационном контроллере, то ошибка:

[self.navigationController view] ; 

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

[appDelegate.navigationController view] ; 

Как я понимаю, это правильный контроллер навигации для использования.

И почему, почему вы выбрасываете контроллер верхнего вида? Если вы хотите удалить self.view, вам нужно только это сделать:

[self.view removeFromSuperview]; 
0

Я считаю, что эта линия

[self.navigationController view] 

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

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