0
votes

Swift | UIViewController ne s'affiche pas comme popup mais plein écran

Donc, j'ai un mode de vue qui est fondamentalement une fenêtre d'alerte censée être une fenêtre contextuelle et être rejetée par le robinet sur l'extérieur de son cadre.

Mais chaque fois que j'appelle cette VC, il est toujours affiché comme plein écran et non comme une fenêtre contextuelle.

J'ai essayé quelques façons de le faire, à savoir comme mentionné ci-dessous. xxx

au cas où quelqu'un a besoin de voir la définition de ce VC, je serai heureux de le partager

Je pense que je devrais mentionner que le VC à afficher en tant que popup est héritée d'UIViewController

toute perspicacité qui pourrait aiderait Soyez super.

merci pour l'entrée


6 commentaires

Pouvez-vous montrer la capture d'écran ou changer de Popover à OvercurrentContext


Vous pouvez vérifier Stackoverflow .com / questions / 26598099 / ...


@Atalayasa je suis passé à travers elle et j'ai fait le style de présentation à coutume et toujours en plein écran, dois-je mettre un cadre ou quelque chose? Parce que je suis trompé


Vous utilisez donc un iPad non?


@wings OvercurrentContext a été le premier que j'ai essayé et ce n'était pas de chance non plus, d'autres idées? Peut-être que je devrais donner le cadre?


@Ahmadf actuellement, j'essaie actuellement à iPhoneXR dans Simulator, cela compte-t-il, devrais-je obtenir un iphone physique 6?


3 Réponses :


0
votes

Un moyen potentiel est d'ajouter un reconnaissance de gestes de robinet à votre vue, ce qui rejette le VC.

Mais cela ne sera utile que si cette popup a une information en lecture seule et ne nécessite aucune action supplémentaire de l'utilisateur. . P>

func addTapRecognizer(){
    let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap))
    self.view.addGestureRecognizer(tap)
}

@objc func handleTap(){
       // dismiss the VC here
    }
}


1 commentaires

Oui, je suis au courant de cette solution, mais cela ressemble plus à une solution de contournement et non sûr si mon employeur le permettra. De plus, le problème est que VC a une touche aussi, ce qui rediriera la page de la ligne d'assistance téléphonique afin que j'ajoute un geste de robinet à l'ensemble de la vue, ce bouton cessera de fonctionner



0
votes

Vous pouvez appeler la méthode suivante pour afficher la fenêtre contextuelle:

UIView.animate(withDuration: 0.25, animations: {
    self.view.transform = CGAffineTransform(scaleX: 1.3, y: 1.3)
    self.view.alpha = 0.0
}, completion: { (finished) in
    if finished {
        self.view.removeFromSuperview()
    }
})


4 commentaires

Frère, tout dans cette application est entièrement effectué de manière programmatique, aucun constructeur de scénario ou d'interface n'est utilisé n'importe où, donc je ne pense pas que cela se produira d'une aide ... ou le ferait-il?


Ça va même si votre application est effectuée par programme, vous pouvez utiliser ces méthodes telles que laisser popupvc = popupvc () et montrer que le contrôleur d'affichage.


Ok je vais lui donner un coup, mais où devrais-je déclarer le type de mon VC à être présenté. garder dans mon esprit que je suis toujours un amateur à Swift


Pas de chance non plus frère, maintenant le VC est plein écran, mais l'uitabbar est visible mais je ne pars toujours pas, quand j'ajoute la deuxième partie du code pour rejeter, il suffit de tourner toute la vue sur l'écran noir mais Uitabbar toujours visible



0
votes

Vous devez implémenter cela dans vous présentant le contrôleur d'affichage: xxx

UipoppoverpresentationController affichant Popover en plein écran


0 commentaires