我用客觀的C和組合迅速3.視圖控制器加載兩次
在我MAINVIEW(目標C)我有以下
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:[NSBundle mainBundle]];
CourseViewController *courseView = (CourseViewController*)[storyboard instantiateViewControllerWithIdentifier:@"courseView"];
[self.navigationController pushViewController:courseView animated:YES];
在我的故事板,我的MAINVIEW將呈現導航控制器,它是rootView到swift 3視圖。
在迅速3視圖控制器我有以下和的loadView和viewDidLoad中被調用兩次
override func loadView() {
webView = WKWebView()
//If you want to implement the delegate
webView?.navigationDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let temp: CGRect = UIScreen.main.bounds
screenSize = temp
let url = URL(string: kcourseURL)
let req = URLRequest(url: url!)
webView.allowsBackForwardNavigationGestures = true
webView.load(req)
//webView.frame = CGRect(x:0, y:navBarHeight, width:Int(screenSize.width), height:Int(screenSize.height))
webView.addObserver(self, forKeyPath: #keyPath(WKWebView.estimatedProgress), options: .new, context: nil)
self.setBarButton()
}
爲什麼它被稱爲兩次任何建議?
此外,我試圖解僱這個觀點回到主視圖,但它不會被調用,如果我在SWIFT 3視圖上使用導航控制器。我試過以下。我是否需要使用segue展開才能返回到mainView?
self.dismiss(animated: true, completion: nil)
_ = self.navigationController?.popToRootViewController(animated: true)
爲什麼你反正用故事板時明確實例化視圖控制器? – vadian
你在兩個viewControllers之間的'Storyboard'中設置了一個segue嗎? – dirtydanee
我在2視圖之間的故事板中設置了segue。課程視圖具有一個導航控制器作爲根視圖。我明確地實例化視圖,因爲我在目標c中這樣做,不知道當我爲Swift實現一個目標c時如何改變。如果我沒有實例化它,視圖不會僅僅通過故事板設置來調用。 –