我很难用一个标题来总结我的问题,所以我会在这里尽量说清楚。
我有一个 UIViewController
(vc1),它通过 segue 将我链接到另一个 UIViewController
(vc2)。
在 vc2 中,我可以选择 UISegmentedControl
的一段。
要返回到 vc1,我只需按下返回 UIButton
我在 @IBAction
所在的位置:
@IBAction func returnToMainView(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
我希望当我再次回到 vc2 时,我第一次选择的片段再次被选中。
我的解决方案是什么?
我是否应该继续使用 dismissViewControllerAnimated
方法并使用委托(delegate)方法来保存选择了哪个索引段。然后当我回到 vc2 时,在调用 vc2 的 segue 中传递选定的索引段?
或者是否有比 dismissViewControllerAnimated
更好的方法来保持我的 vc2 的状态?
希望我已经说得够清楚了。
更新:
这是关于我的案例的更多信息。
在 vc1 中,我有一个 UITableView。在每一行上,我都可以调用我的 vc2,它当然会根据行显示信息。
实际上,我只想为应用程序的当前执行保存此 Controller 的状态。无需持久化状态
最佳答案
为此,我正在使用 NSUserDefaults
。所以如果我打开另一个 ViewController,我会在需要的地方保存我的 UIViews 的所有重要设置。
在您的示例中,在关闭 ModalViewController 之前,您可以保存例如 UISegmentedControl
的状态:
NSUserDefaults.standardUserDefaults().setInteger(segmentedControl.selectedSegmentIndex, forKey: "yourSwitch")
然后,在 ModalViewController 的 viewWillApear
方法中,调用 NSUserDefaults
并加载所有设置:
var selectedIndex = NSUserDefaults.standardUserDefaults().integerForKey("yourSwitch")
之后在 viewDidAppear
方法中,调用值:
segmendedControl.selectedSegmentIndex = selectedIndex
关于ios - 保持模态 UIViewController 状态的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28731437/