ios - viewController 在 segue 通过之前呈现

标签 ios swift segue uistoryboardsegue

我有一组按钮,我想使用 segue 将它们的标题发送到下一页。这是我所做的:

// in my first page i have : 
 @IBAction func btn_language_action(_ sender: UIButton) {
        let chosen_language = sender.currentTitle!
        print(chosen_language)
        let game_level = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "game_level") as! game_level_viewController
        self.present(game_level, animated: false, completion: nil)
        performSegue(withIdentifier: "GL", sender: chosen_language)

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let game_level_viewController = segue.destination as! game_level_viewController
        game_level_viewController.language = sender as? String

    }

在第二个 View 中我有:

  @IBOutlet weak var lang: UILabel!
    var language : String?
    override func viewDidLoad() {
        super.viewDidLoad()
       setUI()
    }

    func setUI (){

        lang.text = language
        print(language )

    }

不过我可以成功传递信息,但是在我收到发送的内容之前已经加载了 View 。知道我该如何解决这个问题吗? 在我的控制台中:

language ==>  nil
language ==>  Optional("Persian")

enter image description here

最佳答案

问题出在这一行

self.present(game_level, animated: false, completion: nil)

为什么即使您已将 segue 交给 Controller ,您仍要显示此 Controller

去掉这两行就可以了

 let game_level = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "game_level") as! game_level_viewController
        self.present(game_level, animated: false, completion: nil)

关于ios - viewController 在 segue 通过之前呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47149630/

相关文章:

ios - 具有多个目标的恼人的 XCode Source Kit 错误

ios - 使用 "Show detail"segue 替换 Split View Controller 中的详细 View Controller

ios - 如何在 prepareForSegue iOS 上设置 imageView 图像?

iphone - 日期字符串格式为 NSDate

ios - Xcode Storyboard View Controller 中的多个 View ,其中一个不会出现在故事​​板编辑器中

ios - RxSwift Observable 不会在数据更改时更新 TableView

swift - Instant segue,在呈现 View 之前

ios - 使用 ARKit 中的 ARCamera 信息定位/旋转平面节点

ios - “管道中未处理的流错误”将 iOS 平台添加到 PhoneGap 3

swift - 在 iOS 中本地化字符串