繁体   English   中英

在标签栏控制器之前显示登录视图控制器

[英]Show login view controller before tab bar controller

我是iPhone开发的新手。 我正在开发一个包含四个选项卡的iphone应用程序。 我已经使用标签栏控制器实现了它。 但是现在我需要在选项卡栏控制器之前显示一个没有选项卡的登录屏幕。 我尝试了很多方法,但没有得到我想要的方法。

谁能用代码片段解释如何做到这一点?

创建一个新的类LoginViewController。 当您的应用程序启动时,然后将视图添加到窗口中。 现在,当登录成功后,将其从超级视图中删除并添加MainController。

创建一个UITabBarController的子类(尽管苹果不建议这样做),但为此目的应该可以,并在viewWillAppear中进行此操作

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    BOOL isLogged in = //do something to determine if you're logged in
    if(!loggedIn){
        LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewControllerNibHere" bundle:nil];
        [self presentModalViewController:loginViewController animated:YES]; //or NO if you don't want it animated
        [loginViewController release];
    }
}

或将其添加到UITabBarController的类别中,并将其导入到应用程序委托中或使用UITabBarController的任何位置

最好的方法是创建一个新的LoginViewController,就像其他人提到的那样,然后在对用户进行身份验证后立即将rootviewController设置为tabBarcontroller。 这是您快速执行此操作的方法,这是您在LoginViewController中对用户进行身份验证后的摘要

let tabBarController = self.storyboard?.instantiateViewControllerWithIdentifier("TabBarController") as! UITabBarController
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window?.rootViewController = tabBarController

其中TabBarController是标签栏控制器的情节提要ID。 可以是任何名称,无论您使用什么名称。

  • 用代表您的登录屏幕的笔尖创建一个新的UIViewController子类(我将其称为SignInViewController)。
  • 打开您的MainWindow.nib文件并添加一个新的UIViewController
  • 将新的UIViewController的类类型设置为SignInViewController
  • 将UIWindow的rootViewController出口设置为新的SignInViewController
  • 现在创建一个新的笔尖文件,并将您现有的UITabBarController复制到该文件中(最好分割笔尖,而不是使用单个巨型笔尖)
  • 返回MainWindow.xib,更改现有的UITabBarController的属性以指定刚创建的笔尖名称

检查此链接的源代码,

它使用Login Controller作为具有4个选项卡的模式视图

http://code.google.com/p/tweetero/source/checkout

我也尝试过这种方式

在我的第一个标签视图中-在viewDidAppear -我将检查Login = YES,然后

显示LoginController

- [self.tabbarcontroller presentMOdalViewcontroller:LoginView animated:YES];

因此,每次您单击第一个选项卡时-如果您需要登录,请添加一个标志-选中它并显示登录视图

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM