Activer et désactiver l'élément de la barre d'onglets en cliquant sur un bouton dans xcode?
J'ai 5 onglet éléments de la barre. La première sera la page de connexion. Lorsque l'utilisateur n'avez pas connecté sur l'onglet autre chauve-souris des éléments sera désactivé, mais lors de la connexion de l'utilisateur en cliquant sur le navigationItem bouton toutes les autres 4 tab bat les éléments sont activés.
J'ai fait cherché et rien trouvé... 🙁
Voici mon code:
MainTabViewController.h
#import <UIKit/UIKit.h>
@interface MainTabViewController : UITabBarController
@property (retain, nonatomic) IBOutlet UITabBar *MainTabBar;
@end
MainTabViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
//Do any additional setup after loading the view.
UITabBarItem *tabBarItem = [[MainTabBar items] objectAtIndex:1];
[tabBarItem setEnabled:FALSE];
}
LoginViewController.h
#import <UIKit/UIKit.h>
@interface LoginViewController : UIViewController
@property (retain, nonatomic) IBOutlet UITextField *CustomerUsername;
@property (retain, nonatomic) IBOutlet UITextField *CustomerPassword;
- (IBAction)ResignKeyboardClicked:(id)sender;
@end
LoginViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
//Do any additional setup after loading the view.
UIBarButtonItem *btnGo = [[UIBarButtonItem alloc] initWithTitle:@"Login" style:UIBarButtonItemStyleBordered target:self action:@selector(loginAction)];
self.navigationItem.rightBarButtonItem = btnGo;
}
- (void) LoginAction {
AppDelegate *passData = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if ([CustomerUsername.text isEqualToString:@""] || [CustomerPassword.text isEqualToString:@""]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"alert" message:@"Please Fill all the field" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
return;
}
//i will use a code from connect to DB tutorial
NSString *strURL = [NSString stringWithFormat:@"http://localhost:8888/Staff.php?userName=%@&password=%@",CustomerUsername.text, CustomerPassword.text];
//to execute php code
NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];
//to receive the returend value
NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];
if ([strResult isEqualToString:@"1"])
{
//MainTabViewController *main = [[MainTabViewController alloc] initWithNibName:nil bundle:nil];
//UITabBarItem *tabBarItem = [[main.MainTabBar items] objectAtIndex:1];
//[tabBarItem setEnabled:TRUE];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" message:@"You are now Logged In" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
return;
}
else
{
//invalid information
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"alert" message:@"Invalide Information" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
return;
}
}
Pour l'instant mon code seulement désactiver les 4 autres barre d'onglet articles, mais je ne connais pas le moyen de permettre à tous l'onglet chauve-souris des éléments lorsque l'utilisateur est connecté.
S'il vous plaît aider?
Merci! 😀
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Je dois dire que je suis un débutant en développement iOS bits, je pense que je peux vous aider.
En vous Storyboard faire un TabBarController et tous les autres UIViewController. Lien de l'TabBarController et ajouter attribuer des classes. Dans votre cas, l'un des UIViewController sera appelé LoginViewController.Maintenant, quand votre application démarre la LoginViewController doit être le premier onglet une vous suffit d'ajouter ce code pour désactiver les onglets:
Et encore une fois, vous pouvez activer avec:
De sorte que votre LoginAction fonction devrait ressembler à ceci:
J'espère que cela a aidé 😀
J'ai mis à jour la solution de @RonzyFonzy de travailler avec N le numéro de l'onglet éléments de la barre: