0

大家好,UI 选项卡控制器有问题,

所以我有一个登录屏幕作为我的第一个控制器我想知道是否有办法锁定标签栏项目,然后在登录成功后解锁它们?

目前我正在使用NSDictionary存储我的用户名和密码以及UIAlertView用于提醒登录是否成功,但是如果没有登录就可以访问选项卡,那么登录确实没有意义。

以下是我当前的登录代码

 - (IBAction)loginNow {
    if ([[credentialsDictionary objectForKey:usernameField.text]isEqualToString:passwordField.text]) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Correct" message:@"You have successfully logged in." delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
        [alert show];
        usernameField.hidden = YES;
        passwordField.hidden = YES;
        goButton.hidden = YES;
        welcomeField.hidden = NO;
        nameField.hidden = NO;

    } else {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You have entered an incorrect Username or Password" message:@"Please try again." delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
        [alert show];
    }  
}
4

1 回答 1

0

您可以使用协议中的tabBarController:shouldSelectViewController:方法UITabBarControllerDelegate返回NO应该无法访问的选项卡。

将相关对象(可能是您的主视图控制器)设置为选项卡栏的委托,并实现上述方法,NO当用户未登录并尝试访问他们不应访问的选项卡时返回。

于 2015-05-26T16:10:33.340 回答