多个视图控制器上的UIProgressView相同

arm*_*man 2 objective-c uiprogressview ios swift

前言

我有一个iOS应用程序,有两页注册过程.

我已经在每个页面上安装了UIProgressView来测量所述注册过程中用户的累积进度.

目前,注册过程包括六个领域.

当文本字段完成编辑时,现有的UIProgressView采用基于1/6更新的浮点输入.

第一个控制器的UIProgressView以浮点值零启动.

一旦所有领域完成; 第二个视图控制器以float值0.5启动.

问题

这个解决方案很原始,问题很多.

对于初学者,你可以在展开/ segue期间看到两个UIProgressViews.

我可以跨两个视图控制器使用相同的UIProgressView吗?

预先感谢您的帮助.

NB

上述注册过程包括两个独立的视图控制器.请告知这是否是常见做法/是否存在更合适的解决方案.

主要问题图像 UIProgressView问题

解决上图中所示的问题是我的主要目标.

Dun*_*n C 6

如果您希望在用户完成2个注册VC时保持修复进度条,则使用视图控制器包含.

创建包含进度视图的父视图控制器和容纳2个注册VC之一的容器视图.使用embed segue将该容器视图链接到子视图控制器.如果您愿意,可以将子视图控制器设置为导航控制器,或者您可以简单地嵌入第一个注册VC,然后根据需要在第一个和第二个之间进行动画制作.

编辑:有一个方法 transitionFromViewController:toViewController:duration:options:animations:completion:可以让您轻松地在子视图控制器之间创建过渡.

第二次编辑:如果您需要在父视图控制器和子视图控制器之间进行通信,您必须自己连接一种方法.要从子进程通信回父进程,通常的方法是在子进程中设置委托属性并定义一个简单的协议以与父进行通信.在父级的prepareForSegue方法中,您将子级的委托属性设置为self.然后,孩子可以根据需要向父母发送消息.

在您的情况下,您将定义一个简单的协议,让孩子通知父级有关进度值的更改,然后父级将更新进度视图.(让子视图控制器直接操作进度视图是个坏主意.)

如果您希望父级与子级进行通信,则需要在设置时保存指向子视图控制器的指针,类似于设置委托.

如果换出子视图控制器,则需要设置管道(子到父委托属性和父对子指针)作为交换子视图控制器的代码的一部分.

我在gitHub上有一个项目,其中有一个真正可怕的名称" test "(链接),用于设置父视图和子视图控制器,以及从父级到子级以及从子级到父级的通信.