2016-06-10 1 views
0

enter image description here Je suis nouveau sur IOS Programming. J'ai créé viewController (ViewController.swift) avec vue de conteneur (ContainerViewController.swift) qui ont 2 vues (FirstViewController.swift et SecondViewViewcontroller.swift), puis j'ai ajouté le bouton dans FirstViewcontroler et ajouté @IBAction pour cela, mais je ne suis pas capable cliquer sur le bouton (l'action ne fonctionne pas). Compte tenu du conteneur Segue a ajouté le code suivantL'action d'un bouton n'est pas déclenchée dans le conteneur Afficher dans IOS Swift

de ContainerViewController.swift

func segueIdentifierReceivedFromParent(button: String){ 
    buttonClick = button 
    if button == "first" 
    { 
     self.segueIdentifier = "firstSegue" 
     self.performSegueWithIdentifier(self.segueIdentifier, sender: nil) 
    } 
    else if button == "second" 
    { 
     self.segueIdentifier = "secondSegue" 
     self.performSegueWithIdentifier(self.segueIdentifier, sender: nil) 
    } 
} 

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

    if segue.identifier == segueIdentifier{ 

     //Avoids creation of a stack of view controllers 
     if lastViewController != nil{ 
      lastViewController.view.removeFromSuperview() 
     } 

     vc = segue.destinationViewController //as! UIViewController 

     self.addChildViewController(vc) 
     vc.view.frame = CGRect(x: 0,y: 0, width:self.view.frame.width,height:self.view.frame.height) 

     self.view.addSubview(vc.view) 
     vc.didMoveToParentViewController(self) 
} 

FirstViewController.swift

override func viewDidLoad() { 
    super.viewDidLoad() 
} 

@IBAction func getQuotesAction(sender: UIButton){ 
    print("Button is Clicked") 
} 

ce bouton ne fonctionne pas getQuotesAction s'il vous plaît me aider à résoudre ce problème. Advance merci pour la réponse.

+0

Si je comprends bien, je voudrais installer un protocole de délégué sur votre containerViewController avec une méthode qui le modifie childVC. Ensuite, le bouton dans FirstViewController peut appeler cette méthode. – tagy22

+0

Pouvez-vous montrer votre story-board. –

Répondre

-1

Le code ci-dessus indique quel contrôleur doit être utilisé, après avoir appuyé sur un bouton potentiel. Le bouton ne fonctionnera pas avec le code ci-dessus. Soit créer une action de sortie ... Aller à story-board, utiliser l'action de l'écran partagé (deux cercle en haut à droite), contrôler le clic et suivre votre bouton à votre classe et libérer. Nommez votre bouton et assurez-vous de sélectionner une action. Mettez votre part respective entre ces parenthèses. Devrait ressembler à ceci:

@IBAction func btnClick(sender: UIButton) {} 
+0

Déjà, j'ai ajouté ce code @IBAction func btnClick (expéditeur: UIButton) {} dans FirstViewController.swift, mais cela ne fonctionne pas –

+0

Avez-vous le self.performSegueWithIdentifier ("segueName", expéditeur: nil) est l'action de votre bouton – Wayne

0

Je résolu ce problème par une augmentation de la hauteur du containerView parce que ma taille de firstviewcontroller était supérieure à la containerView. Maintenant, les actions sub viewcontroller fonctionnent correctement.