当前的视图控制器具有3个按钮,它们的标签随机变化,因此当用户按下按钮时,我需要检查按钮标签是否正确,我需要选择某个视图控制器,如果正确错误,我需要选择另一个视图控制器。
这是一个按钮的代码,其他按钮具有类似的代码,但变量名称除外。
wx.PostEvent
这与我选择的一个视图控制器的代码和另一个类似: 导入UIKit
@IBAction func click2(_ sender: Any) {
if (opt2.titleLabel?.text) != nil {
let userAnswer=opt2.titleLabel?.text;
if ((userAnswer!.elementsEqual(self.optionsArray[0])) == true)
{
playSound(fileName: "kidsCheering")
self.performSegue(withIdentifier: "sucessMessageSegue", sender: nil)
}
else {
self.performSegue(withIdentifier: "wrongMessgeSegue", sender: nil)
}
}
}
这是我从终端获得的错误
警告:尝试在Proximity.ViewController:上演示Proximity.QuestionViewController:
答案 0 :(得分:0)
编辑-----------------------------------
更多更新后
您无法从已经显示的视图控制器中显示视图控制器,因此请使用其他样式的segue或正确处理它。
尝试在呈现另一个UIViewController时呈现一个UIViewController,您要做的就是关闭现有的UIViewController,然后呈现一个新的
您也可以尝试类似的方法... 将此添加到ViewDidLoad()中的mainViewController上
definesPresentationContext = true
更新----------
您是否尝试过类似的操作
override func viewDidDisappear(_ animated: Bool) {
if ViewController.isActive == true {
ViewController.isActive = false
}
}
或这样。
self.searchController.dismiss(animated: false) {
self.performSegue(withIdentifier: "<YOUR SEGUE IDENTIFIER>", sender: cell)
}
或将其添加到您进行侦听的位置
if searchController.isActive {
self.searchController.dismiss(animated: false) {
// Do what you want here like perform segue or present
}
}
这与其他基本相同。.这进入您采取行动进行侦查的地方
if presentedViewController == nil {
self.presentViewController(alertController, animated: true, completion: nil)
} else{
self.dismissViewControllerAnimated(false) { () -> Void in
self.presentViewController(alertController, animated: true, completion: nil)
}
}
您可以尝试添加调度主系统...但这不是最佳实践
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
//dismiss and present new one
}