我在导航视图时遇到问题。
我有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];
此时,注册和忘记密码这两个按钮不起作用。按钮点击没有任何反应。
有什么问题?我认为bocz我已经添加了Login作为模态视图而不是pushViewConterller ???如果是的话,我该如何完成这项任务呢?
希望问题很清楚。...谢谢
答案 0 :(得分:5)
当您以模态方式呈现控制器时,它们不在导航控制器中。你应该写
UINavigationViewController *nvc = [[UINavigationViewController alloc] initWithRootViewController:login];
[login release];
[self presentModalViewController:nvc animated:YES];
[nvc release];
答案 1 :(得分:4)
我认为你应该推忘记密码&注册VC也作为模态控制器。你试过了吗?
答案 2 :(得分:0)
当你做的时候 [self presentModalViewController:login animated:YES];在这种情况下,您的视图控制器将被传递,现在当您尝试实现[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操作将被调用,并将导航到相应的页面。
答案 3 :(得分:0)
使用您的登录视图控制器作为根控制器显示导航控制器。请检查以下代码。
UINavigationController * navController = [UINavigationController alloc] initWithRootController:loginController]; [self presentModalViewController:navController]; [navController release];