Почему нынешний ModalViewController не работает во второй раз? - PullRequest
0 голосов
/ 20 апреля 2011

Я использую приложение на основе вкладок, которое показывает presentModalViewController, называемый «обзор», на котором есть 2 кнопки.

Чтобы вызвать его, я использую следующий код в делегате приложения:

Overview *overview = [[Overview alloc] initWithNibName:@"Overview" bundle:nil];
    [self.tabBarController presentModalViewController:overview animated:YES];

Когда появляется обзор, у него есть кнопка, которая вызывается, и я использую следующий код:

-(IBAction) btnLoginPressed{

    [self dismissModalViewControllerAnimated:YES]; //get rid of view
    Login *login = [[Login alloc] initWithNibName:@"Login" bundle:nil];
    [self.tabBarController presentModalViewController:login animated:YES];
    [login release];    
}

Однако логин prsentModalViewController никогда не появляется. Может кто-нибудь объяснить, почему и что я могу сделать, чтобы показать это?

Спасибо

1 Ответ

2 голосов
/ 20 апреля 2011

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

Предполагая, что ваше второе модальное отображение контроллера представления происходит в Overview.m, измените ваш код на следующее:

-(IBAction) btnLoginPressed {
    Login *login = [[Login alloc] initWithNibName:@"Login" bundle:nil];
    [self presentModalViewController:login animated:YES];
    [login release];    
}

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

Когда вы в конечном итоге отклоняете вход в систему (или как бы глубоко вы ни хотели зайти), вы отправляете dismissModalViewController:animated: так высоко, как вам нужно. Чтобы вернуться к контроллеру панели вкладок, используйте:

[self.tabBarController dismissModalViewController:animated]

Это было бы далеко за рамками вашего вопроса и времени, которое я должен ответить, но вы должны уделить некоторое время и по-настоящему изучить документы по реализации View Controllers. Я определенно рекомендую следовать рекомендациям Apple по стилю кода, чтобы сделать ваш код более читабельным (например, overviewViewController против overview). Также ясно, что вы только учитесь, так что продолжайте.

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