Как загрузить SecondViewController одновременно с ViewController внутри метода viewDidLoad()?

Тип Сегу - Sheet.

import Cocoa

class ViewController: NSViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.performSegue(withIdentifier: "secondVC", sender: self)
    }

    func prepareforSegue(segue: NSStoryboardSegue, sender: Any?) {
        if let identifier = segue.identifier, identifier == "secondVC" {
            _ = segue.destinationController as? SecondViewController
        }
    }
}

enter image description here

0
Andy Jazz 23 Сен 2018 в 23:37

1 ответ

Лучший ответ

Этот

self.performSegue(withIdentifier: "secondVC", sender: self)

Не будет работать внутри viewDidLoad, подумайте о том, чтобы обернуть его внутри Dispatch-after или внутри флага bool в viewDidAppear

DispatchQueue.main.asyncAfter(deadline:.now() + 2 ) {
   self.performSegue(withIdentifier: "secondVC", sender: self)
}

ИЛИ

var once = true
override func viewDidAppear() {
   super.viewDidAppear()
   if once {
        self.performSegue(withIdentifier: "secondVC", sender: self)
        once = false
   }
}
2
Sh_Khan 23 Сен 2018 в 20:59