我在应用中有一个UIViewcontroller和4个tableviews。当我点击UIViewcontroller上的一个按钮时,它会转到名为“Beach”的UItableviewcontioler。当用户单击表格的单元格时,它会回到UIViewController,并将所选单元格标题显示为按钮标题。我遇到的问题是当我点击一个nother按钮到tableview然后点击单元格时,之前的按钮标题会回到之前的标题。
我完成上述操作的方法是在viewcontrller中添加一个名为“select beach”的变量,其中包含“some String”。在选择单元格之后,变量发生变化,从而改变按钮标题。虽然,这样做的问题是,一旦视图再次加载(当被调用到另一个表时),它将重置为“Some String”
我多年来一直坚持这个问题!请帮助!!
PS-我正在使用swift-2和Xcode7
答案 0 :(得分:0)
这是预期的行为,因为您尝试显示的字符串仅在初始化运行时后存储在内存中。您要实现的目标需要将数据存储在设备上并从那里读取。
可能和最简单的解决方案可能是使用NSUserDefaults
:
let persistenceStoreKey = "MyStringKey"
let stringToStore = "MyString"
// Store data
NSUserDefaults.standardUserDefaults().setObject(stringToStore, forKey: persistenceStoreKey)
NSUserDefaults.standardUserDefaults().synchronize()
// Get data
let myString = NSUserDefaults.standardUserDefaults().stringForKey(persistenceStoreKey)
请注意,NSUserDefaults最适合存储简单值。如果要在设备上存储复杂结构,请考虑使用CoreData或第三方,例如Realm进行数据库抽象。
希望这有帮助。