[英]How do I check if view controller is initial view controller? (SWIFT 3)
[英]How can I check Previous View Controller in Swift 4
我想重用 ViewController 即UserDataViewController ,用於注冊和配置文件更新。 要做到這一點,我必須知道原點視圖控制器。 (是 RegisterViewController 還是 ProfileViewController?)我該如何檢查? 我需要建議和一些示例代碼,請。
如果您使用 Show segue,那么您正在推入導航堆棧。 userdataViewConroller,在它的viewDidAppear
,可以通過這樣說來找出現在哪個視圖控制器位於堆棧的更下方:
if let vcs = self.navigationController?.viewControllers {
let previousVC = vcs[vcs.count - 2]
if previousVC is RegisterViewController {
// ... and so on
}
}
從何處打開此視圖,RegisterViewController 或 ProfileViewController?
基於此評論,如果您使用導航控制器,則可以通過檢查導航堆棧來執行此操作。 如果您正在使用演示控制器,您可以檢查演示視圖控制器。
但是,如果您可以引用對象,那么您可以添加對早期控制器的弱引用。 這可以通過依賴注入方法來完成,比如准備轉場,或者你也可以在你創建對象的地方做。 希望這可以幫助
我認為不要在UserDataViewController中找到以前的視圖控制器,如果想將其用於配置文件更新,您應該從ProfileViewController傳遞用戶數據。 為此,您可以在ProfileViewController 中添加此功能
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let userDataVC = segue.destinationViewController as? UserDataViewController {
userDataVC.user = self.user
}
}
並在UserDataViewController 中為用戶添加一個變量。
var user: User?
並檢查viewDidLoad方法。
if let user = user {
// Its Coming from ProfileViewController
// Show User Information in textfields.
}
else {
// Its Coming From RegisterViewController
}
優點 -它將在配置文件更新的情況下在文本字段中顯示用戶當前信息,從而提供更好的用戶體驗。 - 節省用戶再次輸入所有信息的時間。 他只更新需要更新的特定信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.