"Pousser enchaîne peut être utilisée uniquement lorsque le contrôleur source est géré par une instance de UINavigationController
Je vais avoir un problème avec cela.
En vue de la racine de mon contrôleur, je vais avoir un textfield & un seul bouton. Je donne une condition comme si je suis entré à 0 dans le textfield alors seulement, il devrait passer à la vue suivante.
jusqu'ici, il fonctionne correctement. Mais maintenant, ici, est le problème. Ici, je vais avoir un bouton & compte tenu de la navigation à la troisième-vue-contrôleur pour ce bouton. ici, je reçois l'erreur comme
Terminating app due to uncaught exception 'NSGenericException', reason: 'Push segues can only be used when the source controller is managed by an instance of UINavigationController.'
image ref: http://img12.imageshack.us/img12/8533/myp5.png
et je suis en train d'action pour le bouton à première vue comme ci-dessous
- (IBAction)Submit:(id)sender {
if([tf.text isEqual:@"0"])
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
SecondViewController *vc2 = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewControllerID" ];
[self presentViewController:vc2 animated:YES completion:NULL];
}
}
OriginalL'auteur Boggarapu | 2013-10-07
Vous devez vous connecter pour publier un commentaire.
Après avoir regardé votre capture d'écran, vous avez besoin soit de
SecondViewController
sur la navigation existante du contrôleur de la pile au lieu de le présenter sous forme modale OUSecondViewController
dans une autre manette de navigation, puis de créer et de présenter que manette de navigation modal à partir de votre SamplesViewControllerDe toute façon,
SecondViewController
doit être intégrée dans une manette de navigation avant de pouvoir utiliser le Push Enchaîne de ilVotre explication est un peu moins clair, mais je pense que ce que vous voulez est d'aller à un point de vue particulier conditionnellement lorsque ce bouton est pressé. Il suffit de connecter le pousser enchaîne à partir de votre source de-vue-contrôleur (pas le bouton) vers votre destination-vue-contrôleur (s) dans XCode. Puis dans l'action associée à votre bouton, vous pouvez interroger le contenu de la zone de texte et appel
- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender
avec la séquence que vous souhaitez appeler.son travail maintenant. Je vous remercie.
OriginalL'auteur Jonathan Arbogast
Aller À:
Éditeur--> Intégrer Dans --> manette de Navigation, pour ajouter
Navigation Controller
à votre point de vue initialOriginalL'auteur Mutawe
Intégrer votre point de vue contrôleur dans une manette de Navigation ou si il y a une manette de Navigation dans le story-board mak il la vue initiale du contrôleur
OriginalL'auteur Muhammad Irfan
J'ai également fait face à un même problème. Mon problème était que j'utilisais
model
segue style (plutôt quepush
) avant le régulateur de courant à cause de cela je pense qu'il a cassé la Navigation de la chaîne avant déjà.Considérez le scénario
A > B > C
où A,B,C sontViewControllers
avecNavigationController
déjà au début de A. Maintenant, vous avez déplacé à partirA > B
avecModel
animation. Cela permettra de briser la chaîne et vous ne pouvez pas déplacer deB > C
À cela nous devons ajouter un autreNavigationController
direD
avant (& ciblage)B
et passer deA
àD
avecModel
animation (qui, indirectement, passer àB
). Si le flux est commeA > (D) -> B > C
. Maintenant plus de flux de navigation est pris en charge par la deuxièmeNavigationController
OriginalL'auteur RootCode
Intégrer votre vue-contrôleur dans un
UINavigationController
est une bonne option si il n'y a pas deUINavigationController
dans le storyboard. Sinon, vous pouvez sélectionner leUINavigationController
et sélectionnez la vue de la racine de contrôleur dans l'inspecteur volet, puis faites-le glisser vers leUIViewController
vous souhaitez utiliser en tant que root. la capture d'écran ci-dessous:OriginalL'auteur chancyWu
J'ai résolu ce problème par la création d'une coutume UIStoryboardSegue entre les UINavigationController et de la destination-vue-contrôleur:
OriginalL'auteur plaasm
De l'essayer. Il fonctionne pour moi.lorsque vous définissez vue de la racine de contrôleur à première vue et de l'utilisation auto.presentViewController ,contrôleur de passer à la prochaine vue, mais l'instance de la manette de navigation est uniquement pour le premier point de vue,le troisième mode de navigation requise pour utiliser auto.navigationController au lieu de presentViewController.
Oui, j'ai ajouté plus d'explication @Blip .
OriginalL'auteur Jaywant Khedkar