UINavigation: Как сдвинуть вид с представленного модального вида - PullRequest
1 голос
/ 24 августа 2011

У меня проблема с навигацией по представлениям.

У меня есть VC, говорят, Логин, который я звоню из другого VC, как:

- (IBAction) btnAction 
{           Login * login = [[Login alloc] init];

        [self.navigationController pushViewController:login animated:YES];
}   

в VC входа в систему есть две кнопки, скажем, Register и Forget Password, которые вызывают другой VC, RegisterVC и ForgetPassVC соответственно.

- (IBAction) btnRegisterNow : (id) sender
{

    aRegister = [[Register alloc] initWithNibName:@"Register" bundle:nil];
    [self.navigationController pushViewController:aRegister animated:YES];  
}

- (IBAction) btnForgotPassword : (id) sender
{
    forgotPassword = [[ForgotPasswd alloc] initWithNibName:@"ForgotPasswd" bundle:nil];
    [self.navigationController pushViewController:forgotPassword animated:YES];
}

Моя проблема:

Когда я звоню, Войти по номеру [self.navigationController pushViewController:login animated:YES]; все работает нормально.

Но в некоторых VC мне нужно отобразить страницу входа в систему как [self presentModalViewController:login animated:YES];. В настоящее время две кнопки, Register и Forget Password, не работают. При нажатии кнопки ничего не происходит.

В чем проблема? Я думаю, что я добавил Логин как модальный вид, а не pushViewConterller ??? если так, то как я могу выполнить эту задачу?

надеюсь, вопрос ясен.

Спасибо ... * * 1023

Ответы [ 4 ]

5 голосов
/ 24 августа 2011

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

UINavigationViewController *nvc = [[UINavigationViewController alloc] initWithRootViewController:login];
[login release];
[self presentModalViewController:nvc animated:YES];
[nvc release];
4 голосов
/ 24 августа 2011

Я думаю, что вы должны нажать Забыли пароль и зарегистрировать ВК также как модальные контроллеры.Вы пробовали это?

0 голосов
/ 24 августа 2011

Представьте контроллер навигации с вашим контроллером представления входа в качестве корневого контроллера. Проверьте код ниже.

UINavigationController * navController = [UINavigationController alloc] initWithRootController: loginController]; [self presentModalViewController: navController]; [выпуск navController];

0 голосов
/ 24 августа 2011

Когда вы делаете [selfsentModalViewController: вход в систему анимирован: ДА];в этом случае ваш контроллер представления передается и теперь, когда вы пытаетесь реализовать [self.navigationController pushViewController: ForgotPassword animated: YES];это не сработало, потому что у вас нет контроллера навигации.

Нужно ли указывать ваш логин как модальное представление?Затем используйте этот код: -

 - (IBAction) btnAction 
{
        Login *login=[[[Login alloc]initWithNibName:@"Login" bundle:nil]autorelease];
        UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:login]autorelease];
        [[self navigationController] presentModalViewController:navController animated:YES];

    }   

Теперь ваше забытое и зарегистрированное действие btn будет вызвано и перейдет на соответствующую страницу.

...