故事板连续和返回

Posted

技术标签:

【中文标题】故事板连续和返回【英文标题】:Storyboards segues and back 【发布时间】:2015-12-11 02:49:06 【问题描述】:

我有两个通过 segue 连接的 ViewController:第一个有许多用于用户输入的 TEXT FIELD 和一些用于执行计算的 LABELS。有一个按钮(storyboard segue)将用户发送到有一些图片的第二个 Storyboard,在这第二个 ViewController 中有一个按钮(storyboard segue)可以带回第一个 ViewController。 当用户返回到第一个 ViewController 时,所有 TEXT FIELDS/LABEL 都是空白的。用户将需要使用第一个 VC 中的数据,因为他需要从 VC1 到 VC2 再返回。那里是一个按钮,当用户想要执行另一个会话时将清除所有数据,在应用程序关闭后无需保留数据。非常欢迎任何帮助。

【问题讨论】:

【参考方案1】:

我认为您可以创建一个类来将数据保存在全局会话中。

class Session:NSObject 
    static var textfieldA = ""
    ...

    class func clearAll() 
        Session().textfieldA = ""
        ...
    


// In VC1
// to set string
Session().textfieldA = "abc"
// to get string
anystring = Session().textfieldA
// to clear all
Session().clearAll()

【讨论】:

【参考方案2】:

您可以创建一个NSObject 类,并可以在那里保存变量,这样当您转到第一个视图控制器时,您可以从那里获取值并设置它们。同样,如果您想在应用程序关闭时保存它们,也可以使用NSUserDefaults。另一种方法是创建Singletons 并从任何地方访问它们。 如果你要创建一个Push Segue,那么在返回按钮上你可以Pop,并且第一个视图控制器中的文本字段数据将保持不变。

【讨论】:

我认为使用 NSUserDefaults 会有点矫枉过正,因为@Manolo 提到在应用关闭后无需保留它们。

以上是关于故事板连续和返回的主要内容,如果未能解决你的问题,请参考以下文章

如何回到不同故事板的先前视图控制器?

返回故事板当前视图控制器标识符

从 UITableviewcell 移动到 ViewController 并使用故事板返回

在 xcode 5 故事板中返回上一个 ViewController

iOS Xcode LaunchScreen故事板无法显示

故事板和故事板包之间的区别?