在导航控制器中返回和前进后保持文本字段的内容可见

Posted

技术标签:

【中文标题】在导航控制器中返回和前进后保持文本字段的内容可见【英文标题】:Keep contents of a textfield visible after going back and forwards in navigation controller 【发布时间】:2021-02-07 19:29:51 【问题描述】:

我有一个小问题。我在不同的视图中使用导航控制器和文本字段。我的问题是,当我使用后退按钮后退然后前进时,文本字段会被删除。在这种情况下,我想保持文本字段的内容可见。有这个选项吗?

感谢您的帮助,如果我不够清楚,请随时提出问题:)

【问题讨论】:

【参考方案1】:

它会一直可见,直到您终止您的应用程序,但如果那不起作用 在你的视图中会出现写这个

从 userDefault 获取数据:

if let name = Constants.kUserDefaults.string(forKey: appConstants.name)
            self.userName.text = name
        
        
        if let email = Constants.kUserDefaults.string(forKey: appConstants.email)
            self.userEmail.text = email
        

并在按钮单击或导航控制器时设置数据:

 Constants.kUserDefaults.set(responseData?["name"], forKey: appConstants.name)  
   
 Constants.kUserDefaults.set(responseData?["email"], forKey: appConstants.email)

其中常量是用户默认的结构:

struct Constants 
    
    static let kUserDefaults = UserDefaults.standard
 

即使在您终止应用程序后,或者即使您在第二天运行它,此代码仍然有效,除非您从手机中删除您的应用程序,否则它会一直有效。 做更多关于用户默认值的研究

【讨论】:

以上是关于在导航控制器中返回和前进后保持文本字段的内容可见的主要内容,如果未能解决你的问题,请参考以下文章

键入时保持 UIMenuController 可见

如何使用 UISearchController 使导航栏保持可见?

iOS在导航堆栈中的视图控制器之间循环

使用苹果键盘中的返回按钮进行导航

尝试在同一视图上的文本字段之间移动后,SwiftUI 应用程序在控制台中冻结且没有错误

后退和前进导航箭头图标不见了