我有一个应用程序在首次启动时会启动登录页面。此登录页面遍历应用程序,并且在他们登录之前不允许任何人通过。我的主应用程序上还有一个设置选项卡,需要返回到此登录屏幕。现在它显示登录屏幕,上面有标签栏。有没有办法通过标签栏获取登录视图?
答案 0 :(得分:2)
通过在标签栏顶部转换视图,我做了类似的事情。我使用了yourView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;使用“关闭”按钮让用户返回标签栏屏幕。我没有这样做,所以它自动进入应用程序启动,而是从屏幕上的按钮调用视图分离到标签栏控件。但是,我相信你能够以某种方式利用它来做你想做的事。
事实上,我实际上已经使用这种方式在我的应用程序中调用视图,每次它都覆盖了tababr,你必须“关闭”它才能回到你来自的主标签导航。
答案 1 :(得分:0)
尝试在登录屏幕的viewDidLoad中进行以下设置:
self.tabBarController.hidesBottomBarWhenPushed = YES;
答案 2 :(得分:0)
您可以使用UITabBarController的子类来执行此操作,然后在viewDidAppear:
中执行各种检查。正如@Maxwell建议的那样,登录视图以模态呈现。
// a subclass of UITabBarController
- (void) viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self firstLoadChecks];
}
- (void) firstLoadChecks
{
if (!self.hasLogin) {
id login = [[[LoginViewController alloc] initWithDelegate:self autorelease];
id nav = [[[UINavigationController alloc] initWithRootViewController:login] autorelease];
nav.modalPresentationStyle = UIModalPresentationStyleFormSheet;
nav.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:nav animated:YES];
}
}
// from LoginViewControllerDelegate
- (void) didLogin
{
self.hasLogin = YES;
[self dismissModalViewControllerAnimated:YES];
}
// my LoginViewController can be closed without a login
- (void) dismissModalViewControllerAnimated:(BOOL) animated
{
[super dismissModalViewControllerAnimated:animated];
[self firstLoadChecks];
}