Wizardry.swift - 可重用的方法和框架实现向导式用户界面管理

网友投稿 599 2022-11-03

Wizardry.swift - 可重用的方法和框架实现向导式用户界面管理

Wizardry.swift - 可重用的方法和框架实现向导式用户界面管理

Wizardry

A reusable way to allow users to perform a multipart task in your iOS app, written in Swift.

The demo implements a wizard that allows users to sign up to use an app.

Classes in the framework make no assumption about, nor impose restrictions upon, your wizard's visual design.

Important functionality in the wizard framework has thorough unit test coverage.

How to use it

Wizard Step View Controllers

Create a UIViewController subclass for every step/screen in your wizard.

Example: UsernameStepViewController

Wizard Steps

For every step in your wizard, create a type that adopts the WizardStep protocol. An instance of this type owns a wizard step view controller and collects & processes user input for that view controller.

Example: UsernameWizardStep

Note: It is possible to have wizard step view controllers adopt the WizardStep protocol, if preferred.

Data Source

Adopt the WizardDataSource protocol to determine the order in which a user will view your wizard steps.

Example: SignUpWizardDataSource

Wizard View Controller

Subclass WizardViewController and implement your custom UI design to navigate between wizard step views. You will need to override three methods:

func navigateToInitial(wizardStep: WizardStep) func navigateToNext(wizardStep: WizardStep, placement: WizardStepPlacement)func navigateToPrevious(wizardStep: WizardStep, placement: WizardStepPlacement)

Example: SignUpWizardViewController

Show The Wizard

Create your wizard view controller and configure it with your custom data source before presenting it to the user.

@IBAction func handleShowSignUpWizardButton(sender: UIButton) { let storyboard = UIStoryboard(name: "SignUpWizard", bundle: nil) let signUpWizardVC = storyboard.instantiateInitialViewController() as! SignUpWizardViewController let model = SignUpWizardModel() let dataSource = SignUpWizardDataSource(model: model) signUpWizardVC.configureWith(dataSource, completionHandler: { [weak self] (canceled: Bool) in print("Completed sign up wizard. canceled = \(canceled)") self?.dismissViewControllerAnimated(true, completion: nil) }) presentViewController(signUpWizardVC, animated: true, completion: nil)}

Example: ViewController

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:对计算机以及编程的粗陋理解(四)
下一篇:对计算机以及编程的粗陋理解(一)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~