Question

Je suis en train de créer une application simple qui nous laissent les films à la demande de l'utilisateur après boutons cliquant dessus. Le premier écran que vous voyez est le menu principal avec 2 boutons. L'un d'eux envoie à l'utilisateur une vue sous lequel je codé comme cela dans une méthode IBAction:

ViewConroller *nextView = [[ViewController alloc] initWithNibName:@"NextMenu" bundle nil];
[self.view addSubview:[nextView view]];
[nextView release];

Cette partie est très bien, sauf que la vue sous un bar montre 20 px dans le bas de la vue précédente. Je regardais autour et aucune des solutions comme ce travail un pour moi. Ce n'est pas même le principal problème. Sur le point de vue secondaire, chaque fois que je clique sur un bouton, l'explosion de l'application. Les méthodes IBAction pause avant même l'exécution d'une ligne dans la méthode. Ici, dans la méthode goBack IBAction, je suis en train de rejeter la sous-vue et revenir au menu principal:

[self.view removeFromSuperview];

Mes connexions sont correctes dans mes fichiers et tout semble XIB être en ordre. Les boutons ne sont tout simplement pas d'exécution. Je ne sais pas si elle doit le faire avec l'ajout de la vue sous ou quoi. Je l'ai fait beaucoup de recherche autour sur google et ce site, mais je ne peux toujours pas trouver une solution.

Voici un exemple de l'erreur que je reçois:

Terminating app due to uncaught exception 'NSInvalidArgumentException, reason: '-[__NSCFType goBack:]: unrecognized selector sent to instance 0x5640b70'

Nous espérons que vous les gars peut me aider, ce qui est vraiment très frustrant. Je me sens comme je l'ai tout essayé. Merci pour votre temps. Permettez-moi de savoir si je dois fournir plus d'informations. Merci encore.

Était-ce utile?

La solution

ViewConroller *nextView = [[ViewController alloc] initWithNibName:@"NextMenu" bundle nil];

Voir le contrôleur est créé.

[self.view addSubview:[nextView view]];

self.view valeur ajoutée de nextView.view que cette sous-vue et retenu le (N.B. il a conservé la valeur next.view pas lui-même nextView)

[nextView release];

nextView est libéré et immédiatement désalloué (parce qu'il n'a jamais été retenu par personne)

Bouton tente d'envoyer un message à l'objet désalloué -.> Comportement est indéfini, dans votre cas un autre objet (ou quelque chose qui ressemble à un objet) est là et il ne comprend pas ce que veut dire goBack:

C'est pourquoi vous ne devriez pas inventer une roue (surtout si vous êtes nouveau à cela) avec votre propre navigation. Utilisez UINavigationController à la place.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top