J'ai une vue personnalisée qui inclut une vue sur la pile. À l'intérieur de la vue sur la pile, j'ai une étiquette et un bouton.
J'ai créé ma vue sur la pile, une étiquette et une touche de pile et les a ajoutés à la vue parent. P>
override func viewDidLoad() {
super.viewDidLoad()
homeView = HomeView()
homeView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(homeView)
homeView.fullscreenView(parentView: view)
}
@objc func loginClicked(_ sender: UIButton) {
print("sign in button pressed")
}
4 Réponses :
Tout d'abord que vous définissez Il existe deux moyens possibles de résoudre ce problème, d'abord ajouter la cible de la vue Contentrale, et l'autre utilise la délégation. P> Je pense que le premier Way serait plus facile à mettre en œuvre pour vous. p> Vous devez ajouter votre cible à partir de votre Mise à jour de la première classe et éliminez Ajout d'une cible: p> maintenant dans votre userInterActionAcéder à code> Propriété de votre Stackview à False, définissez-la sur true. Ensuite, si cela ne fonctionne pas, considère l'approche suivante: ViewController Code> Classe. P> ViewController code>: p>
Merci pour la réponse. J'ai supprimé la cible dans la définition du bouton et l'a déplacée sur le contrôleur d'affichage comme ci-dessus, mais je reçois toujours le même résultat.
@ user2569905 Avez-vous défini isasereractionensible (code> de stackview code> à true?
Vous pouvez utiliser Protocole / délégation
extension ViewController: HomeViewDelegate{
func loginButtonClicked(sender: UIButton) {
print("login Button Clicked")
}
}
Ajoutez cette ligne à votre code de bouton
let signin: UIButton = {
let button = UIButton()
button.backgroundColor = .blue
button.setTitle("Sign in", for: .normal)
button.titleLabel?.font = UIFont(name: "Avenir", size: 14)
button.setTitleColor(UIColor.white, for: .normal)
button.addTarget(self, action: #selector(ViewController.loginClicked(_:)), for: .touchUpInside)
button.isUserInteractionEnabled = true
return button
}()
Vous devez ajouter les solution: strong> p> < Pré> xxx pré> Contentroller strong> p>
Avez-vous essayé de supprimer la ligne
stack.isuserInterActionAcéder = false code>? ou le changer entrue code>Oui, essayé cela et avoir le même résultat