2016-03-21 12 views
1

Zur Zeit habe ich ein UITableViewCell und ich angebracht, um eine segue vom Typ show dort - wenn der Benutzer klickt auf die Zelle diese Methode aufgerufen wird:Ist es möglich, 2 Segmente an die UITableViewCell anzuhängen, die auf zwei verschiedene UIViewControllers zeigen?

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    if (segue.identifier == "fullEventSegue"){ 


     fullEventDetails = segue.destinationViewController as? FullEvent 


    } 
} 

und dann bekommen Benutzer aus dieser Zelle auf die FullEvent Klasse umgeleitet (und Ansicht) . Aber jetzt will ich überprüfen, ob das ist ein Benutzer des Typs A, und wenn ja, dann ihn wie gewohnt umleiten, aber wenn nicht - dann umleiten ihn zum PartialEvent, so etwas wie:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if (user == "typeA") 
    { 
    if (segue.identifier == "fullEventSegue"){ 


     fullEventDetails = segue.destinationViewController as? FullEvent 


    } 
    }else{ 

if (segue.identifier == "partialEventSegue"){ 


     partialEventDetails = segue.destinationViewController as? PartialEvent 


    } 
    } 
} 

Ich habe versucht, zwei segues befestigen auf storyboard, aber wenn ich einen zweiten anschließe - der erste verschwindet und für mich sieht es so aus, als ob ich nur einen Überhang anbringen kann. Gibt es eine Möglichkeit, es zu beheben und beide gleichzeitig zu verwenden?

Antwort

6

Verbinden Sie die Segmente mit dem View-Controller anstelle der Zelle. Dann implementieren Sie Ihre Testlogik innerhalb Ihrer didSelectRowAtIndexPath Methode.

Rufen Sie je nach Benutzertyp performSegueWithIdentifier auf und wählen Sie den passenden Bezeichner.

+0

Dies ist die richtige Antwort. (abgestimmt) –