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 en
true code>
Oui, essayé cela et avoir le même résultat