Salut tout ce que je suis nouveau dans le développement de l'IOS et je suis actuellement en cause avec quelque chose, j'essaie de créer un formulaire de connexion de manière moderne si un utilisateur n'est pas connecté.
J'utilise Nsuserdefault pour stocker Un identifiant que je vérifie simplement s'il existe. Si cela ne veut pas alors je voudrais que l'UIViewController apparaisse. P>
Jusqu'à présent, j'ai le code suivant dans mon UinavigationController qui se trouve dans une UITABVIEDCONTROLLER, j'essaie d'obtenir que l'UIViewController apparaisse au-dessus de la première UINAVIGATIONCONTROLLER ( Celui qui est sélectionné), au moment où l'animation se produit, mais il n'y a qu'un écran noir, même si l'écran de connexion dispose de toutes les zones de texte pertinentes, etc. déjà créées. Si je définis cet écran de connexion comme vue initiale à charger, il charge bien. P>
Il s'agit du code qui apparaît dans la première vue de vue de l'uoinavigationController. P>
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; if (![prefs stringForKey:@"id"]){ LoginViewController *loginController = [[LoginViewController alloc] init]; [self presentModalViewController:loginController animated:YES]; } else { [self loadCoffeeUserOrders:[prefs stringForKey:@"id"]]; }
3 Réponses :
Donc, le loginViewController que vous créez ici est un exemple différent de celui que vous avez configuré dans votre storyboard. Je pense que ce que vous voulez amener celui de la scénario à charger et présenté.
Le moyen le plus simple consiste à créer une SEGUE dans le storyboard à partir de votre contrôleur de la première vue au contrôleur de la vue de connexion que vous avez créé. Vous pouvez faire glisser Ctrl d'un contrôleur d'affichage à l'autre et sélectionnez "Modal" comme type de Segue. Ensuite, allez à l'inspecteur pour cette SEGUE et donnez-lui un identifiant. Disons que vous appelez cela «SEGUETOLOGIN». P>
Pour effectuer cette SEGUE de votre code, faites quelque chose comme ceci: P>
if (![prefs stringForKey:@"id"]){ [self performSegueWithIdentifier:@"segueToLogin" sender:self]; }
Salut @firoze Lafeer vous remercie beaucoup de cela, cela a fonctionné un régal, j'ai coché votre réponse comme correct (j'espère que c'est ce que je dois faire, c'est mon premier post sur là), alors devrais-je faire cette action de vergewithIdentifier à chaque fois que vous voulez faire Une poussée, modale lorsque je crée un contrôleur similaire qui est un exemple différent de ce qui se trouve sur le storyboard? J'essaie encore de me faire face à ma tête pour que cette réponse ait vraiment aidé cette réponse.
Pas sûr que nous disons la même chose. J'ai ajouté un peu à ma réponse, j'espère que cela a du sens.
J'ai eu un problème similaire, mais la résolution n'était pas celle indiquée ci-dessus. Le problème a résidé dans le fichier de contrôleur de la nouvelle vue actuel ".m" (celui que j'essaie de pousser / modal sur). Il existe une méthode appelée LoadView à l'intérieur et si vous le laissez là, XCode ignorera le XIB que vous avez dans le storyboard et vous attendez à ce que vous établissez la vue. Supprimer cette fonction et il va regarder le XIB à la place. P>
a trop longtemps passé sur ce bogue stupide, j'espère que cela peut aider à sauver la santé mentale de quelqu'un d'autre. P>
Ha, c'était aussi le problème pour moi. Merci!
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; LoginViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"]; [vc setModalPresentationStyle:UIModalPresentationFullScreen]; [self presentModalViewController:vc animated:YES];
Assurez-vous que votre affichage de votre loginViewController est connecté dans le fichier XIB, définissez un point de rupture dans LoginViewController's ViewDidLoad et assurez-vous qu'il effectue ce que vous attendez.
Votre affichage de connexion est-il implémenté dans LoadView ou avez-vous configuré pour une nib pour cela?
Je viens d'ajouter un nslog dans ma vue ViewDidload et il est de la décrocher comme prévu. @Firozelafeer im à l'aide du mode de scénario dans Xcode, donc j'ai déjà vue dans le storyboard.