ViewController с NavigationController зацикливается на себе - PullRequest
0 голосов
/ 01 февраля 2012

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

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

-(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]; }

Ответы [ 2 ]

0 голосов
/ 01 февраля 2012

Если этот код находится во ViewController и, как вы говорите, этот контроллер не помещается в навигационный контроллер, то ошибка:

[self.navigationController view] ;

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

[appDelegate.navigationController view] ;

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

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

[self.view removeFromSuperview];
0 голосов
/ 01 февраля 2012

Я полагаю, что именно эта строка

[self.navigationController view]

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...