Iphone 如何在选项卡栏应用程序启动之前显示登录控制器?

Iphone 如何在选项卡栏应用程序启动之前显示登录控制器?,iphone,Iphone,嗨,我在iphone/ipad上做了一个标签栏应用程序。完成所有操作后,客户端需要一个登录控制器,用户必须登录该控制器才能进入第一个视图。第一个视图是包含登录按钮和注册按钮的单一视图,此视图必须是第一个视图,用户点击登录它重定向到登录页面意味着登录页面。登录后,用户必须进入tabbarapp的第一个视图。我在appDidFinishLaunching RootViewController *log = [[RootViewController alloc] initWithNibName:@"

嗨,我在iphone/ipad上做了一个标签栏应用程序。完成所有操作后,客户端需要一个登录控制器,用户必须登录该控制器才能进入第一个视图。第一个视图是包含登录按钮和注册按钮的单一视图,此视图必须是第一个视图,用户点击登录它重定向到登录页面意味着登录页面。登录后,用户必须进入tabbarapp的第一个视图。我在
appDidFinishLaunching

RootViewController  *log = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
    [window addSubview:tabController.view];
    [window addSubview:log.view];
    [window makeKeyAndVisible];
rootviewcontroller是singin注册按钮视图,我在应用程序启动中获得了此视图。但当我输入singin时,它不会重定向到singin或登录页面。我的代码是

pagesignIn *secondViewController = [[pagesignIn alloc] 
                                               initWithNibName:@"pagesignIn" 
                                               bundle:nil];

    [UIView beginAnimations:@"flipping view" context:nil];
    [UIView setAnimationDuration:1];
    //[UIView setAnimationCurve:UIViewAnimationTransitionFlipFromLeft];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft 
                           forView:[[self navigationController] view] cache:YES];

    [self.navigationController pushViewController:secondViewController animated:YES ];
    [UIView commitAnimations];
但是什么都没有发生,然后我把这个
[self.view removeFromSuperview]到上面的代码,现在我得到了按钮操作,但它没有重定向到登录页面,但它重定向到了tab bar应用程序的第一个页面。单击登录按钮后,我将如何转到登录页面?请帮帮我。

提前谢谢。

我想您的
日志
-ViewController没有导航控制器。在代码
self中,navigationController
nil
,所有对
nil
的方法调用都将无效

试试这个:

RootViewController  *log = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
//create a new navigationcontroller
UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:log];

[window addSubview:tabController.view];
[window addSubview:navVC.view]; //now add the navigationcontroller instead of the log-vc
[window makeKeyAndVisible];
[navVC release];
[log release];

但我建议您使用
模态viewcontroller
。它更简单(例如,您不必使用窗口的子视图),并且可以更好地理解用户有两种不同的视图。

您应该使用正确的模态视图控制器


请参阅此链接,创建自己的登录视图控制器类,并用登录控制器对象替换初始屏幕对象。删除登录控制器后,添加选项卡控制器。

是的,在您的第一个代码片段所在的同一位置:在didfinishLaunchingsir中,我已经实现了您的代码,但在显示初始屏幕后,它直接重定向到选项卡栏的第一个视图,然后在我删除日志版本和anvVC版本后,它显示“登录”按钮页面,然后我单击“登录”按钮,应用程序崩溃。它在主界面崩溃