ios - 如何将 UIViewController 的 Root View 重置或重新启动到其原始状态?

标签 ios objective-c uiviewcontroller

我是 iOS 开发新手。我有一个非常简单的 UIViewController,在 View 中有两个按钮。我允许用户编辑 UI 组件或从一个地方拖放到另一个地方。现在我想实现重置功能,允许用户将 UI 重置到其原始阶段并放弃所有更改。

正如在几篇尝试过 setNeedsDisplay 的帖子中提到的,但看起来它不是实现此目的的正确方法。我有哪些选择?

例如在 Android 世界中,您可以完成当前 Activity(相当于 UIViewController)并重新启动自身以达到原始状态。在 iOS 中是否可以做类似的事情。

- (IBAction)resetButtonClicked:(id)sender {
    // Now I want discard all the changes on the screen 
    // On some button click or specific action from user.

    // Tried calling setNeedsDisplay as pointed in few others answers but somehow 
    // setNeedsDisplay does not reload my ViewController.
    // [self.view setNeedsDisplay];
  }

最佳答案

我也做过类似的事情。我所做的是:

1) 为每个帧 ui 控件创建本地 CGRect 变量,即 CGRect originalFrame1;

2) 获取每个 ui 控件的原始框架位置并将它们存储在 viewDidLoad 上,即 originalFrame1 = _frame1.frame;

3) 在 resetButtonClicked 上将其设置回原始位置 _frame1.frame = originalFrame1;

关于ios - 如何将 UIViewController 的 Root View 重置或重新启动到其原始状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21374339/

相关文章:

ios - NSUserDefaults setObject 在线程中崩溃

ios - Swift/iOS - 带有更多信息的 UIButton Sender

iOS7如何根据指定时区获取当前时间和日期?

ios - 按值传递的结构参数包含未初始化的数据

ios - UIScrollView 框架随机更改

ios - 在没有 Segue 的 UIViewController 之间移动

ios - UIButton:如何使用 imageEdgeInsets 和 titleEdgeInsets 使图像和文本居中?

ios - 几秒钟后出现 UINavigationItem

swift - 快速从相机滚动的图像中获取创建日期

ios - 如何将 UICollectionViewFlowLayout 置于两列中心