[英]viewDidLoad vs ViewWillAppear in IOS
對於Application,不會調用viewDidLoad
一次。 當視圖保存內存並加載時,會為該viewController調用一次。
因此,當您推送到viewController的時間很多時,它會多次調用viewDidLoad
viewDidLoad()
- 在創建和加載視圖控制器的內容視圖(其視圖層次結構的頂部viewDidLoad()
調用
viewWillAppear()
- 用於在視圖變為可見之前始終要執行的任何操作。
有關此內容的詳細信息,請訪問以下鏈接: https : //developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson4.html
因此,如果視圖已經在內存中(就像你的情況一樣),則無需再次推送,只需要通過此代碼彈出即可
self.navigationController?.popViewControllerAnimated(true)
你不應該從secondViewController
過渡到firstViewController
。 通過此代碼彈出第二個視圖控制器:
self.navigationController?.popViewControllerAnimated(true)
當你進行轉換時,它會從你的firstViewController
創建一個新實例,但是當你彈出第二個視圖控制器時,它會關閉你的secondViewController
並再次顯示你上次查看的viewController。
要么
如果您沒有使用navigationController
您應該使用下面的代碼來關閉您的secondViewController
self.dismissViewControllerAnimated(true, completion: {});
重點是你不應該使用新的過渡。
最簡單的方法:
1.首先在ViewController中嵌入ViewController
2.呼吁這(而不是創建segue支持)
navigationController?.popToRootViewController(animated: true)
viewDidLoad只會被調用一次
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.