Xcode 8 podczas kompilacji mówi, aby zmienić instancję viewcontroller
z identyfikatorem na prosty, natychmiastowy kontroler widoku. Zrobiłem to, dlaczego daje dwa błędy?Swift 3, Xcode 8 Instantiate View Controller nie działa
Pracuję z Swift 3. Chcę zmieniać strony programowo. Przeczytałem wiele innych pytań na ten temat. Wszystkie używają natychmiastowego kontrolera widoku z identyfikatorem. Nie przyjęli nowego języka.
@IBAction func switchPage(_ sender: UIButton) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController =
storyboard.instantiateViewController("secondViewController") as!
UIViewController
self.presentViewController(secondViewController, animated: true,
completion: nil)
}
Dzięki. Zmieniłem kod zgodnie z sugestią i otrzymałem tylko jeden błąd: wartość opcjonalnego typu "UIStoryboard?" nieopakowany; czy chciałeś użyć "!" lub "?"? Czy powinienem dodać gdzieś wykrzyknik?
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a
nib.
}
@IBAction func ch(_ sender: UIButton) {
let viewController =
storyboard.instantiateViewController(withIdentifier:
"secondViewController") as! UIViewController
self.present(viewController, animated: true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Dzięki. Jest blisko, ale dostaję jeden błąd. Jakieś sugestie? – Aleric
@Aleric Nigdy nie powiedziałem ci, aby usunąć tę linię 'let storyboard = UIStoryboard (name:" Main ", bundle: nil)' sprawdź edytowaną odpowiedź. –
To działa. Świetna robota Nirav. Spokojnie. – Aleric