2017-07-19 1 views
1

Je cherche juste un moyen de détecter quel identifiant de Segue a activé le viewController actuel. Je suis dans le besoin de le faire car j'ai des conditions qui pourraient ne pas être remplies, mais peut être référencé à partir d'un autre viewController, alors je voudrais mettre en évidence quelques étiquettes utilisant cet identifiant de segue spécifique. Quelqu'un at-il besoin de le faire avant? Comment avez-vous abordé cela?Comment détecter l'identificateur de segue activé contrôleur de vue en cours

+0

Possible copie de [Comment vérifier quelle section a été utilisée] (https://stackoverflow.com/questions/16167425/how-to-check-which-segue-was-used) –

+0

Je vous remercie d'avoir essayé d'atténuer le questions nécessaires sur SO @ DávidPásztor, mais la question mentionnée que vous avez liée n'est pas applicable à mon scénario. Je ne vois pas non plus le besoin de votre vote négatif. J'ai eu une question parfaitement raisonnable pour la meilleure approche d'un problème qui a assez de variances dans toutes les situations qui ont nécessité ma question. –

+0

Vous venez d'accepter une réponse qui est à peu près la même que celle de la question que j'ai liée, donc vous venez de prouver mon point. –

Répondre

1

Vous devriez probablement créer sur votre "Current View Controller" une propriété pour stocker le nom de la section, puis sur le contrôleur qui utilise la section pour instancier votre "Current View Controller" que vous lui attribuez avant que le feu de l'exécution de Segue:

ObjectiveC:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
if ([[segue identifier] isEqualToString:@"YourSegueName"]) { 

    // Get destination view 
    CurrentVC *vc = [segue destinationViewController]; 

    // Get button tag number (or do whatever you need to do here, based on your object 
    vc.segueName = @"YourSegueNam"; 
}} 

Swift 3:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "YourSegueName" 
    { 
     if let destinationVC = segue.destination { 
      destinationVC.segueName = segue.identifier 
     } 
    } 
} 

Est-ce ce dont vous avez besoin? Faites le moi savoir. De toute façon, je ne sais toujours pas pourquoi vous voulez faire ça.

+0

Vous avez réellement eu le concept que j'essayais de transmettre. Je suppose que mon objectif était un peu confus. Essentiellement, j'ai une application qui doit être sur un réseau spécifique, lorsque le contrôleur qui valide le réseau; Si la validation échoue, j'effectue une séquence pour afficher les détails du réseau de l'utilisateur. Maintenant, je voulais mettre en évidence des étiquettes spécifiques dans le VC qui montrent les détails du réseau qui ne sont pas corrects. Ainsi, les détails du réseau VC devraient comprendre pourquoi la validation a échoué afin que je puisse présenter les changements d'interface utilisateur pertinents pour informer l'utilisateur pourquoi la validation a échoué. Mais votre concept répond à ma question. Merci! –

+0

La question est étiquetée Objective-C, pas Swift. Veuillez poster vos réponses dans la langue appropriée. – rmaddy

+0

Je viens de réaliser que @rmaddy. Merci. – matiasdim

0

Ceci n'est pas possible. Vous ne pouvez pas simplement obtenir le "Segue actuel" à tout moment dans l'application. Parce que les Segues n'existent qu'à des moments spécifiques au cours du cycle de vie de vos applications. Cela étant lorsque votre application se prépare à la transition d'un contrôleur de vue à un autre et également pendant la transition visuelle réelle. Pour plus d'informations suivez https://developer.apple.com/documentation/uikit/uistoryboardsegue